【问题标题】:MS DataGrid (WPF) : How to bind a combobox to a class?MS DataGrid (WPF):如何将组合框绑定到类?
【发布时间】:2010-10-02 11:04:48
【问题描述】:

这听起来像是一个微不足道的问题,但即使在 Stackflow 中,我也只发现绑定到一个简单的字符串集合。

我有一个包含两个属性 Name 和 Age 的 Parent 类。

我有一个具有两个属性 ChildName 和 ChildAge 的 Child 类。

在 MVVM 模式中,我将这些属性公开到 ViewModels 中,此外,我还将 ObservableCollection Children 添加到 ParentViewModel 中

因此,ParentViewModel 包含三个公开的属性:Name、Age 和 Children。

//Inside ParentViewModel
public ObservableCollection<ChildViewModel> Children

我的 Window.xaml 绑定到暴露一个

的 MainViewModel
public ObservableCollection<ParentViewModel> Parents { get; set; }

Datagrid 的定义如下:

<DataGrid ItemsSource="{Binding Parents}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
                <DataGridTextColumn Header="Age" Binding="{Binding Age}"/>
                <DataGridComboBoxColumn Header="Children" 
                                        DisplayMemberPath="ChildName" 
                                        SelectedValueBinding="{Binding Children.ChildName}"
                                        SelectedValuePath="ChildName"
                                        SelectedItemBinding="{Binding Children}"
                                        >

                </DataGridComboBoxColumn>
            </DataGrid.Columns>
        </DataGrid>

虽然父母的姓名和年龄显示正确,但我没有看到“儿童”组合框已填充。 我感到困惑和沮丧。请帮忙。 :)

【问题讨论】:

    标签: wpf datagrid datagridcomboboxcolumn


    【解决方案1】:

    DataGridComboBoxColumnItemsSource 属性设置为Children

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 2016-05-02
      • 2016-12-10
      • 2022-10-07
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      相关资源
      最近更新 更多