【发布时间】:2012-02-07 17:02:17
【问题描述】:
我有一种情况,DataGrid 的 ItemsSource 属性是一个整数数组。这些整数是对应字典的键。我需要在列中显示的是字段,它们是字典值对象的成员。
<DataGrid ItemsSource="{Binding Path=thisDataContext, ElementName=control, Mode=OneWay}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Width="0.3*" Binding="{Binding Converter={StaticResource IntToPersonConverter}, Mode=OneWay }" />
<DataGridTextColumn Header="Department" Width="0.3*" Binding="{Binding Path=DepartmentIDX, Converter={StaticResource DepartmentConverter}, Mode=OneWay }" />
<DataGridTextColumn Header="Position" Width="0.3*" Binding="{Binding Path=EmployeeTypeIDX, Converter={StaticResource EmployeeTypeConverter}, Mode=OneWay }" />
</DataGrid.Columns>
</DataGrid>
我正在使用的 Person 类的对象具有属性 - 部门和职位 ID,因此我实现了多个转换器 - 人员到部门名称和人员到职位名称。我不知道如何将所有这些结合起来。我认为如果我可以将 DataContext 属性设置为 DataGrid Rows,那将是可能的。所以我可以将一个 Person 对象传递给一个转换器。
【问题讨论】:
-
您究竟将什么用作网格的 ItemsSource - 整数集合或 Person 对象集合(由您的 XAML 暗示)?
-
是整数的集合
-
那么 {Binding} 是你可以去的地方。您的 XAML 暗示您使用的是对象而不是整数。
标签: wpf datagrid row datacontext