绑定ComboBox的SelectedItem或SelectedValue,它驻留在DataGrid中

时间:2014-04-12 04:00:22

标签: c# wpf xaml datagrid combobox

我有一个DataGrid。让它有两列名称和性别:

<DataGrid............>
    <DataGridTemplateColumn Header="Name">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBox Text="{Binding Name, RelativeSource.........}" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="Age">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox SelectedItem="{Binding Selected, RelativeSource.........}" >
                    <sys:String> Male </sys:String>
                    <sys:String> Female </sys:String>
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid>

现在当我运行程序时,假设我在DataGrid中有5行,那么当我在任何行中选择男性时,例如第3行,然后所有组合框的SelectedItem变为Male。我怎么能避免这个?

当我的程序运行时,我只有1行,但是当我添加更多行时,它看起来像:

enter image description here

当我尝试在任何ComboBox中选择女性时:

enter image description here

当我在任何ComboBox中选择女性时:

enter image description here

我知道我的Binding是不正确的,所以我遇到了这样的问题,但是有人能解释一下DataGrid里面ComboBox的SelectedItem绑定吗?

1 个答案:

答案 0 :(得分:0)

由于您正在尝试绑定List,并且您将ComboBoxItem对象作为项目。设置你的ComboBox SelectedValuePath =&#34; Content&#34; 就像这样

 <ComboBox SelectedValuePath="Content" ....... >
                    <sys:String> Male </sys:String>
                    <sys:String> Female </sys:String>
  </ComboBox>