【发布时间】:2014-05-26 09:32:28
【问题描述】:
我有一个数据网格。让它有两列 name 和 Gender :
<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 中选择女性时:
我知道我的绑定不正确,所以我遇到了这样的问题,但是谁能解释一下 DataGrid 中 ComboBox 的 SelectedItem 绑定?
【问题讨论】:
-
DataGrid 是一个控件。
-
你能展示
SelectedItem绑定的完整定义吗? DataGrid 的ItemsSource是什么? -
Selected属性位于何处? -
@RohitVats
Selected属性位于GroupsViewModel。 -
因此,您正在绑定具有相同属性的所有行。如果您希望为所有行单独设置它,则应该与基础源中的属性绑定。
标签: c# wpf xaml datagrid combobox