我有一个包含两列的DataGrid。一个是DataGridTextColumn,另一个是DataGridComboBoxColumn。两者都绑定到属性并且是可编辑的。因此,当我更改ComboBox的选择然后单击某个空格时,单元格会显示正确的选择。但是,如果我单击旁边的TextColumn,ComboBox将退出编辑模式并将选择重置为之前选择的内容。
为什么会发生这种情况,我该怎么做才能防止这种情况发生?
答案 0 :(得分:0)
由于您尚未发布您的代码,我正在假设您的问题是什么。
TwoWay
。DataGrid
模式
您需要在SelectedValueBinding
DataGridComboBoxColumn
<DataGridComboBoxColumn x:Name="DropDownComboBox" SelectedValueBinding="{Binding Path=FieldFromData}" Header="SomeName" IsReadOnly="False"/>
在代码中定义组合框内容。
DropDownComboBox.ItemsSource = Enum.GetValues(typeof(ValuesPossible));
如果您没有将Binding设置为您正在显示的数据集中的属性,则它只是一个下拉列表,不会在任何地方更改数据的值。上面的示例使用可以选择的值获取并填充组合框,并选择FieldFromData的数据集中包含的内容。
您还需要以双向模式绑定DataGrid,以允许所选值更改字段。
<DataGrid ..<properties>.. ItemsSource="{Binding DataCollection,Mode=TwoWay}" />
答案 1 :(得分:0)
javascript
答案 2 :(得分:0)
检查列DataPropertyName属性。 我有一个类似的问题。 “类型”永远不会被设定。代码设置了两次,但第二次错误设置。
不正确:
grcLocMill2Code.DataPropertyName =“MillCodeId”;
grcLocMill2Code.DataPropertyName =“MillTypeId”;
正确:
grcLocMill2Code.DataPropertyName =“MillCodeId”;
grcLocMill2Type.DataPropertyName =“MillTypeId”;