我有一个2列的WPF Datagrid绑定到人员对象的ObservableCollection。网格列中的一个是显示(正确)性别的下拉列表 - 男性或女性。
我想要做的是根据男性或女性的绑定值动态显示第二列(ieCol2)中另一个下拉列表中的选项。
我没有看到OnRowBound事件;但似乎我需要根据性别列在Col2上交换我的itemsource,以在Col2列{每行}中生成下拉列表的值。
这听起来有用吗?
答案 0 :(得分:0)
您可以使用下面的示例代码执行此类任务。它假定您有一些性别属性(枚举)以及应该出现在列中的女性和男性项目的集合。它不完整 - 您应该添加选定的项目绑定,displaymemberpath等。但我认为这足以让您了解这个想法:
<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>
答案 1 :(得分:0)