gpt4 book ai didi

winforms - DataGridViewColumn.DataPropertyName 属性

转载 作者:行者123 更新时间:2023-12-04 11:17:20 25 4
gpt4 key购买 nike

我有一个 DataGridView 控件,我想用数据填充它。

我使用 DataSource 属性

// dgvDealAsset is DataGridView
private void DealAssetListControl_Load(object sender, EventArgs e)
{
dgvDealAssets.AutoGenerateColumns = false;
dgvDealAssets.DataSource = DealAssetList.Instance.Values.ToList();
}

现在问题一。我的集合类不仅包含可以使用 DataPropertyName 映射到列的简单类型。这是集合中包含的类。
class MyClass
{
public String Name;
MyOtherClass otherclass;
}

class MyOtherClass
{
public String Name;
}

现在我将 MyClass 的属性绑定(bind)到列
col1.DataPropertyName = "Name"  // Ok 
col2.DataPropertyName = "otherclass" // Not OK - I will have empty cell

问题是我想显示 otherclass.Name 字段。但如果我试着写
col2.DataPropertyName = "otherclass.Name" 

我得到空单元格。

我试图手动设置列
private void DealAssetListControl_Load(object sender, EventArgs e)
{
dgvDealAssets.AutoGenerateColumns = false;
dgvDealAssets.DataSource = DealAssetList.Instance.Values.ToList();

// iterate through rows and set the column manually
foreach (DataGridViewRow row in dgvDealAssets.Rows)
{
row.Cells["Column2"].Value = ((DealAsset)row.DataBoundItem).otherclass.Name;
}

但是这个 foreach 循环大约需要几分钟才能完成(2k 个元素)。如何解决这个问题呢?

最佳答案

问题 nr.1:

尝试执行以下操作:

  • 从 Object 扩展 MyOtherClass(可能不需要此步骤)
  • 并覆盖或创建方法 ToString()。

  • 那应该这样做。

    关于winforms - DataGridViewColumn.DataPropertyName 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2221207/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com