Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid焦点和SelectedIndex?_C#_Wpf_Wpfdatagrid - Fatal编程技术网

C# DataGrid焦点和SelectedIndex?

C# DataGrid焦点和SelectedIndex?,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,很难理解这个概念。如果您单击WPFDataGrid上的一行,它将使用SystemColors.HighlightBrushKey着色并具有“焦点” 如果选择其他控件,则该行不再具有SystemColors.HighlightBrushKey,而是其他颜色(不确定它是什么SystemColor)。然而,它仍然被认为是DataGrid的selectedItem 我本以为,如果数据网格失去焦点,它的selectedIndex将始终为-1,而selectedItem为null。这种行为的目的是什么?有没

很难理解这个概念。如果您单击WPF
DataGrid
上的一行,它将使用
SystemColors.HighlightBrushKey
着色并具有“焦点”

如果选择其他控件,则该行不再具有
SystemColors.HighlightBrushKey
,而是其他颜色(不确定它是什么SystemColor)。然而,它仍然被认为是
DataGrid
selectedItem


我本以为,如果数据网格失去焦点,它的
selectedIndex
将始终为-1,而
selectedItem
null
。这种行为的目的是什么?有没有一种简单的方法来关闭它?

假设您有一个DataGrid和单独的“使用所选项目执行任务”按钮。如果网格在失去焦点时放弃选择,如何使其工作?这是一个简单的例子,但总的来说,我不认为用户做出的持久选择状态是一件坏事

关闭它似乎很容易,只需将
SelectedItems.Clear()
打开
LostFocus
。您可以创建自己的DataGrid子类并将其放在那里,这样就不必在每个网格中编写它。不过,您必须实现一些更复杂的功能,才能使其与multiselect一起工作