MS DataGrid(WPF):如何将组合框绑定到类?

时间:2010-10-02 11:04:48

标签: wpf datagrid datagridcomboboxcolumn

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

我有一个Parent类,它有两个属性Name和Age。

我有一个Child类,它有两个属性ChildName和ChildAge。

在MVVM模式中,我将这些属性暴露给ViewModel,另外我还在ParentViewModel中添加了一个ObservableCollection Children

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

//Inside ParentViewModel
public ObservableCollection<ChildViewModel> Children

My 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>

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

1 个答案:

答案 0 :(得分:0)

DataGridComboBoxColumn的{​​{1}}属性设置为ItemsSource