C# DataGrid焦点和SelectedIndex?
很难理解这个概念。如果您单击WPFC# DataGrid焦点和SelectedIndex?,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,很难理解这个概念。如果您单击WPFDataGrid上的一行,它将使用SystemColors.HighlightBrushKey着色并具有“焦点” 如果选择其他控件,则该行不再具有SystemColors.HighlightBrushKey,而是其他颜色(不确定它是什么SystemColor)。然而,它仍然被认为是DataGrid的selectedItem 我本以为,如果数据网格失去焦点,它的selectedIndex将始终为-1,而selectedItem为null。这种行为的目的是什么?有没
DataGrid
上的一行,它将使用SystemColors.HighlightBrushKey
着色并具有“焦点”
如果选择其他控件,则该行不再具有SystemColors.HighlightBrushKey
,而是其他颜色(不确定它是什么SystemColor)。然而,它仍然被认为是DataGrid
的selectedItem
我本以为,如果数据网格失去焦点,它的
selectedIndex
将始终为-1,而selectedItem
为null
。这种行为的目的是什么?有没有一种简单的方法来关闭它?假设您有一个DataGrid和单独的“使用所选项目执行任务”按钮。如果网格在失去焦点时放弃选择,如何使其工作?这是一个简单的例子,但总的来说,我不认为用户做出的持久选择状态是一件坏事
关闭它似乎很容易,只需将SelectedItems.Clear()
打开LostFocus
。您可以创建自己的DataGrid子类并将其放在那里,这样就不必在每个网格中编写它。不过,您必须实现一些更复杂的功能,才能使其与multiselect一起工作