C# 如何在WPF DataGrid中显示单独表中的特定列?

C# 如何在WPF DataGrid中显示单独表中的特定列?,c#,wpf,entity-framework-4,wpfdatagrid,C#,Wpf,Entity Framework 4,Wpfdatagrid,我有两张桌子,我们叫它们T和V 表T包含数据网格中需要显示的所有数据,表V包含表T中特定列的数据。因此表T包含表V中的外键 我想根据表T中的键显示表V中的文本列 利用 myDataGrid.ItemSource = List<T> myTableTList myDataGrid.ItemSource=List MyTableList 及 所以dataStatusKey是表V中的外键,但我想显示表V中与dataStatusKey对应的文本字段 如果我用T类型的数据填充Data

我有两张桌子,我们叫它们T和V

表T包含数据网格中需要显示的所有数据,表V包含表T中特定列的数据。因此表T包含表V中的外键

我想根据表T中的键显示表V中的文本列

利用

myDataGrid.ItemSource = List<T> myTableTList 
myDataGrid.ItemSource=List MyTableList


所以dataStatusKey是表V中的外键,但我想显示表V中与dataStatusKey对应的文本字段

如果我用T类型的数据填充DataGrid,我该怎么做

我应该创建一个单独的类,用适当的字段填充它,并列出它,然后将我的网格的ItemSource设置为这个新的数据类型列表吗

我应该创建一个单独的类,用适当的字段填充它,并列出它,然后将我的网格的ItemSource设置为这个新的数据类型列表吗

对。您基本上可以这样做:

  • 创建一个新类
    X
    ,每个列都有一个要在DataGrid中显示的属性
  • 使用从视图模型中的
    T
    V
    对象获得的数据填充它
  • ItemsSource
    属性绑定到视图模型的
    IEnumerable
    属性
请注意,如果
T
具有导航属性,则可以直接绑定到此属性:

<DataGridTextColumn Header="Text" Binding="{Binding Path=V.Text}"/>

我正在使用新的普通类,该类只包含要在DataGrid中显示的必要字段。当我尝试{Binding Path=MyTableName.FieldName}时,它根据获取的数据显示了相应的字段/文本,这在没有助手类的情况下完美地解决了我的问题。:)谢谢
<DataGridTextColumn Header="Text" Binding="{Binding Path=V.Text}"/>