【发布时间】:2017-11-10 12:55:07
【问题描述】:
我在 dataGridView 中显示对象列表。列表如下:
List<IAction> actions = new List<IAction>
我使用 karlipoppins 在 DataGridViewComboBoxColumn() 上显示了嵌套属性(未在 IAction 接口中定义) 此处回答(反射)Is it possible to bind complex type properties to a datagrid?
但是当一种对象中没有 Area 属性时,我无法禁用组合框
希望你能帮助我;)
列表中有两种类型的对象:
public class MoveAction : IAction
{
public string Name { get; set; }
public bool Active { get; set; } = true;
}
public class ClickAction : IAction
{
public string Name { get; set; }
public bool Active { get; set; } = true;
public Area Area { get; set; } ////////// Additional Property
}
这个额外的属性对象看起来像:
public class Area
{
public string Name { get; set; }
...
}
dataGridView 列定义如下:
DataGridViewComboBoxColumn CreateComboBoxWithArea()
{
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = areas.Select(t => t.Name).ToArray();
combo.DataPropertyName = "Area.Name";
combo.Name = "Area";
return combo;
}
【问题讨论】:
标签: c# winforms datagridview