我试图用自动生成列创建一个数据网格。 假设我的收藏是我的ObservableCollection<ArticleWrapper>
类型的视图模型Articles
的属性。Datagrid:从ItemsSource集合的一个属性生成列
我现在绑定的ItemsSource到这个集合:
<wpf:DataGrid ItemsSource={Binding Articles} />
类ArticleWrapper
是这样的:
[c#]
public class ArticleWrapper
{
public ArticleConfigurationSet ArticleConfigurationSet { get; set; }
public string Description { get; set; }
}
[vb.net]
Public Class ArticleWrapper
Public Property ArticleConfigurationSet As ArticleConfigurationSet
Public Property Description As String
End Class
类ArticleConfigurationSet
是这样的:
[c#]
public class ArticleConfigurationSet
{
public string Key { get; set; }
public int Number { get; set; }
}
[vb.net]
Public Class ArticleConfigurationSet
Public Property Key As String
Public Property Number As Integer
End Class
自动生成的列看起来像这样(请忘记CustomEntries) :
但现在我的问题:我想要显示的数据绑定到我的ArticleConfigurationSet
属性。但我无法更改我的ItemsSource绑定,因为数据网格的SelectedItem属性必须为ArticleWrapper
(用于命令处理)。
数据网格也应该是这样的:
你有什么想法如何做到这一点?
我会用linq生成一个更友好的视图模型,并在旧的方式做...但感谢所有的答案。 –