升级到.NET Framework 4.7.2后,我注意到ComboBox进入DataGridTemplateColumn.CellEditingTemplate时会出现奇怪的行为。
SELECT t1.table_name, t1.table_rows,
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'my_db_name'
AND table_name = t1.table_name) AS colsm,
t1.data_length
FROM INFORMATION_SCHEMA.TABLES t1
WHERE t1.TABLE_SCHEMA = 'my_db_name';
升级前,事件" cmbTest_SelectionChanged"仅在我更改SelectedItem时才会引发,但现在(在4.7.2。升级之后)" cmbTest_SelectionChanged"当我退出单元格编辑时,也会引发(" null" SelectedItem!),这对我的应用程序来说是一个问题。
如何避免此问题?
更新16/06/2018:我发现仅当ComboBox(Items2)的绑定列表是SelectedItem的属性时才会出现此问题。如果我将列表绑定到外部datacontext(FindAncestor ...),它似乎正常工作。
答案 0 :(得分:1)
这是错误修正记录here的结果: 修复了使用VirtualizationMode = Recycling滚动DataGrid时出现的数据损坏。 [405066,PresentationFramework.dll,Bug]。
腐败的产生是因为即使在单元格退出编辑后,单元格编辑模板中的绑定仍会对更改做出反应。退出编辑时,修复程序断开所有绑定。在您的情况下,将ComboBox.ItemsSource设置为null,这会引发SelectionChanged事件。您可以通过测试ComboBox.ItemsSource是否为空来轻松忽略此事件。