微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DataGridView 将一个单元格内容更改为另一个单元格

如何解决DataGridView 将一个单元格内容更改为另一个单元格

我有一个 products 列表,我正在尝试将它们添加到 datagridview 中。每个产品都有一个属性,如 id、名称、品牌、价格、stockAmount、isPackaged 和产品类型属性。我想要的是使 IsPackaged 布尔值不可见,如果该布尔值为真,则将 productType 更改为“已打包”,如果不是“未打包”,我不希望在每次插入时都键入 packageType。但是,我收到类似“当前上下文中不存在名称 IsPackaged”的错误

为了隐藏 isPackage 列,我发现了一个工作正常的代码 dataGridView1.Columns["IsPackaged"].Visible = false;

list.Add(new Product()
            {
                ID = 4,Name = "Ice Cream",Brand = "Magnum",Price = 12,IsPackaged = true,ProductType = IsPackaged ? "Packaged" : "Unpackaged",//Here is the error
                StockAmount = 50,});

解决方法

我可能弄错了,但看起来 ProductType 应该是一个“不可设置”的属性,因为它基于 IsPackaged 属性。换句话说,无论如何,IsPacked IS 将决定 ProductType 的值是什么。

在当前状态下,这两个变量显得多余,可能会设置为不一致的状态。例如……用户可以将 IsPackaged 设置为 false,然后转身将 ProductType 设置为“打包”!你怎么知道哪个是正确的?

您可能希望更改 ProductType 类的 Product 以保持一致的状态,例如……

public string ProductType {
  get {
    return IsPackaged ? "Packaged" : "Unpackaged";
  }
}

这种方式永远不会“直接”设置“ProductType”,因为它取决于值 IsPackaged 是什么。

该属性将显示在网格中;但是,用户将无法“更改”它。并且由于您使 IsPackaged 列不可见,因此用户将无法更改它。因此,我假设您的问题中缺少有关“如何”工作的信息。如果它纯粹是为了“显示”目的,那么它应该可以工作。如果您希望用户能够“更改” IsPackaged 值,那么我猜它应该显示给用户。同样,这还不清楚。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?