gpt4 book ai didi

c# - DataGridView - 使用 DataPropertyName 显示子元素属性

转载 作者:可可西里 更新时间:2023-11-01 08:58:20 26 4
gpt4 key购买 nike

让图像显示我有以下类(class)

public class Master
{
public string MasterName = "Something";

public List<Detail> details = new List<Detail>();
}

public class Detail
{
public string Foo = "Test";
}

然后我想使用下面的代码在 DataGridView 中显示 Details 对象的集合

DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "Details.Foo";
column.HeaderText = "Foo header";

dgv.Columns.Add(column);

该列显示在网格中,但没有值

最佳答案

如果您需要更通用(即使用 DataPropertyName = "MyProp1.MyProp2.MyProp3"),您可以使用这个

private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewColumn column = Grid.Columns[e.ColumnIndex];
if (column.DataPropertyName.Contains("."))
{
object data = Grid.Rows[e.RowIndex].DataBoundItem;
string[] properties = column.DataPropertyName.Split('.');
for (int i = 0; i < properties.Length && data != null; i++)
data = data.GetType().GetProperty(properties[i]).GetValue(data);
Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = data;
}
}

关于c# - DataGridView - 使用 DataPropertyName 显示子元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046830/

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