我在WPF中的数据网格中遇到了一个组合框问题。 我希望组合框上的箭头即使在编辑模式下也不可见。我无法使用DataGridComboBoxColumn实现此行为,否则其工作正常。要修复此外观问题,我必须使用普通的组合框。
<DataGridTemplateColumn Header="Parameter Group" MinWidth="150" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Source={StaticResource GroupList}}"
DisplayMemberPath="ParameterGroupName"
IsSynchronizedWithCurrentItem="True"
SelectedValuePath="ParameterGroupName"
SelectedValue="{Binding Path=ParameterGroup,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
现在的问题是所选的项目绑定无效。为行选择的任何项目都适用于所有项目。我不确定这里有什么问题。
项目来源是 -
private ObservableCollection<ParameterGroupModel> _parameterGroupList;
public ObservableCollection<ParameterGroupModel> ParameterGrpList
{
get
{
return _parameterGroupList;
}
set
{
_parameterGroupList = value;
NotifyPropertyChanged("ParameterGrpList");
}
}
所选值是模型中的一个简单字符串。 有人可以帮忙吗?
答案 0 :(得分:0)
使用CellTemplate,您在运行时“复制”每个单元格中的相同xaml代码,因此具有相同的绑定。因此每个单元格引用相同的数据源和相同的selectedItem对象。
您必须在某处定义一个对象集合,其中每行可以分别绑定其选定的项目,并在每个单元格中专门引用它 (一种可能的解决方案可能是使用带有selectedItemCollection的多绑定和例如行号来确定您的行必须绑定到哪个selectedItemCollection项目)