我有一个 2 列 WPF Datagrid,它绑定到人对象的 ObservableCollection。网格的一列是显示(正确)性别的下拉列表 - 男性或女性。
我想要做的是根据男性或女性的界限值在第二列(ieCol2)的另一个下拉列表中动态显示选择。
我没有看到 OnRowBound 事件;但似乎我需要根据性别列在 Col2 上交换我的 itemsource,以在 Col2 列 {每行} 中生成下拉列表的值。
这听起来可行吗?
我有一个 2 列 WPF Datagrid,它绑定到人对象的 ObservableCollection。网格的一列是显示(正确)性别的下拉列表 - 男性或女性。
我想要做的是根据男性或女性的界限值在第二列(ieCol2)的另一个下拉列表中动态显示选择。
我没有看到 OnRowBound 事件;但似乎我需要根据性别列在 Col2 上交换我的 itemsource,以在 Col2 列 {每行} 中生成下拉列表的值。
这听起来可行吗?
您可以使用下面的示例代码来执行此类任务。它假定您有某种 Gender 属性(枚举)和应出现在列中的女性和男性项目的集合。它不完整 - 你应该添加选定的项目绑定、显示成员路径等。但我认为这足以让你明白这一点:
<DataGrid ItemsSource="{Binding SomeCollection}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Gender}"/>
<DataGridComboBoxColumn>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
<Style.Triggers>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static enums:Gender.Female}">
<Setter Property="ItemSource" Value="{Binding FemaleItems}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Gender}" Value="{x:Static enums:Gender.Male}">
<Setter Property="ItemSource" Value="{Binding MaleItems}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>