我有两个表,我们称它们为T和V。
表T包含显示在数据网格中所需的所有数据,表V包含表T中某些列的数据。因此表T包含表V中的外键。
我想根据表T中的键显示表V中的文本列。
通过
<DataGrid Grid.Row="0"
Name="datesDG"
Margin="5, 5, 5, 5"
SelectionMode="Extended"
IsReadOnly="True"
AutoGenerateColumns="False"
ItemsSource="{Binding dates, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTextColumn Header="Key Column" Binding="{Binding Path=DateKey}" />
<DataGridTextColumn Header="Publish Date" Binding="{Binding Path=publishDate, StringFormat=\{0:dd.MM.yyyy\}}" />
<DataGridTextColumn Header="Editing Date" Binding="{Binding Path=editingDate, StringFormat=\{0:dd.MM.yyyy\}}"/>
<DataGridTextColumn Header="Data Status" Binding="{Binding Path=dataStatusKey}"/>
</DataGrid.Columns>
</DataGrid>
和
$('#exam_sub_type_element_multiple').selectpicker('refresh');
所以dataStatusKey是表V中的外键,但我想显示表V中与dataStatusKey对应的文本字段。
如果我用T类型的数据填充DataGrid,该怎么办?
我应该创建单独的类并用适当的字段填充它并列出它,然后将网格的ItemSource设置为这个新的数据类型列表吗?
答案 0 :(得分:3)
我应该创建单独的类并用适当的字段填充它并列出它,然后将网格的ItemSource设置为这个新的数据类型列表吗?
是的。您基本上会这样做:
X
,每列要在DataGrid中显示一个属性T
和V
对象获得的数据填充它ItemsSource
属性绑定到视图模型的IEnumerable<X>
属性请注意,如果T
具有导航属性,则可以直接绑定到该属性:
<DataGridTextColumn Header="Text" Binding="{Binding Path=V.Text}"/>