【问题标题】:WPF Datagrid Dynamic ItemsourceWPF Datagrid Dynamic Itemssource
【发布时间】:2014-10-05 18:29:38
【问题描述】:

我有一个 2 列 WPF 数据网格,它绑定到人员对象的 ObservableCollection。网格的一列是一个下拉列表,显示(正确)性别 - 男性或女性。

我想要做的是根据男性或女性的界限值在第二列(即Col2)的另一个下拉列表中动态显示选择。

我没有看到 OnRowBound 事件;但似乎我需要根据性别列在 Col2 上交换我的 itemsource,以在 Col2 列 {每行} 中生成下拉列表的值。
这听起来可行吗?

【问题讨论】:

    标签: wpf datagrid itemsource


    【解决方案1】:

    您可以使用下面的示例代码来执行此类任务。它假定您有某种 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>
    

    【讨论】:

      【解决方案2】:

      谢谢伊万,

      这是我正在寻找的完整示例。

      http://sekagra.com/wp/2013/04/dynamic-itemssource-for-combobox-in-a-datagrid/

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 1970-01-01
        • 2017-11-17
        • 2013-04-21
        • 2013-06-30
        • 2011-12-17
        • 2012-10-30
        • 1970-01-01
        • 2011-07-10
        相关资源
        最近更新 更多