我有一个
ObservableCollection<CustomObj> DataInfo
在我的 MVVM WPF 项目中。
CustomObj 类如下所示:
public class class1 : ObservableObject
{
public class1()
{
MySecondProperty = new Class2();
}
public string MyStringValue { get; set; }
public Class2 MySecondProperty { get; set; }
public List<Class3> MyThirdProperty{ get; set; }
}
每当我像这样绑定(bind) WPF 属性时
<DataGrid Name="dgMyDataGrid"
SelectedItem="{Binding SelectedItem}"
ItemsSource="{Binding DataInfo}">
</DataGrid>
我从“MyStringValue”以及我的数据网格中的对象和集合中获取值。
谷歌没有给我任何结果,我找不到与此示例类似的任何内容。
如何以一种简单的方式从 Class2 和 List 中获取数据以显示数据?
最佳答案
您需要定义列并在列定义内绑定(bind)。
下面将在第二列显示 MySecondProperty.SubProperty 的值
对于 Class3,如果您想要组合框之类的东西,请使用模板化的数据网格列
http://blogs.msdn.com/b/vinsibal/archive/2008/08/19/wpf-datagrid-stock-and-template-columns.aspx
有关于列模板的信息
<DataGrid Name="dgMyDataGrid" SelectedItem="{Binding SelectedItem}" ItemsSource="{Binding DataInfo}">
<DataGrid.Columns>
<DataGridTextColumn Header="MyStringValue " Width="*" Binding="{Binding Path=MyStringValue }" />
<DataGridTextColumn Header="MySecondProperty.SubProperty" Width="*" Binding="{Binding Path=MySecondProperty.SubProperty}" />
</DataGrid.Columns>
</DataGrid>
关于wpf - DataGrid - 将自定义对象与子列表绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476789/