我有一个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行,但是当我添加更多行时,它看起来像:
当我尝试在任何ComboBox中选择女性时:
当我在任何ComboBox中选择女性时:
我知道我的Binding是不正确的,所以我遇到了这样的问题,但是有人能解释一下DataGrid里面ComboBox的SelectedItem绑定吗?
答案 0 :(得分:0)
由于您正在尝试绑定List,并且您将ComboBoxItem对象作为项目。设置你的ComboBox SelectedValuePath =&#34; Content&#34; 就像这样
<ComboBox SelectedValuePath="Content" ....... >
<sys:String> Male </sys:String>
<sys:String> Female </sys:String>
</ComboBox>