当我单击DataGridComboBoxColumn中的单元格时,ComboBox变得可见,我可以选择项目。当我选择了一个项目时,顶部可见它很好。但是当单元格ComboBox因为我点击DataGrid中的不同内容而失去焦点时,我之前选择的单元格中就没有可见的项目/文本了。
如何保留选择/所选文字?
那是我的代码:
<DataGridComboBoxColumn
Width="*"
Header="Monday"
DisplayMemberPath="SchoolclassName"
SelectedValueBinding="{Binding SchoolclassCodeMonday}"
ItemsSource="{Binding Source={StaticResource ClassCodes}}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
<Setter Property="IsDropDownOpen" Value="True" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
我的问题似乎有一个解决方案:http://wpf.codeplex.com/Thread/View.aspx?ThreadId=46627(滚动到底部),但我无法将解决方案转移到我的问题。因为我的模型设置完全不同。
SchoolclassName 是Schoolclass.cs中的字符串属性 SchoolclassCodeMonday 是TimeTable.cs中的字符串属性 ClassCodes 又名 SchoolclassCodes 是ObservableCollection类型的属性| Schoolclass |
有人知道如何修复我的绑定吗?
答案 0 :(得分:1)
我知道它可能不再需要了,但也许它会帮助别人。 您的ComboBox在更改时不需要更新绑定吗? e.g。
SelectedValueBinding="{Binding SchoolclassCodeMonday}"
将是:
SelectedValueBinding="{Binding SchoolclassCodeMonday,
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
还要确保在从可观察集合上的代码更改属性时触发通知。