0
簡單的問題與迄今尚未解答的答案。我們的窗口上有一個支持多選的WPF DataGrid。假設它有十個項目,並且你有六到十個項目被選中。如果您遠離控件,當控件再次獲得焦點時,第一個項目將被聚焦但未被選中。選擇仍然在項目六到十。這對我們來說更糟,因爲我們隱藏了焦點矩形,而不是依靠選擇高亮,這是用戶期望發生的事情。如何在WPF DataGrid獲得焦點時重新聚焦第一個選定的行?
我已經嘗試了對IsKeyboardFocusWithinChanged事件的響應,如圖所示,包括有和沒有調度程序,確定也許其他事情發生後更改它,但仍然無濟於事。
private void TestDataGrid_IsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if(!(bool)e.NewValue)
return;
Dispatcher.Invoke(new Action(() =>
{
var firstSelectedItem = VariableValuesDataGrid.SelectedItem;
if(firstSelectedItem != null)
VariableValuesDataGrid.CurrentItem = firstSelectedItem;
}), DispatcherPriority.Background);
}
任何想法如何解決這個問題?
因此,如果數據網格獲得焦點,那麼您需要選擇並聚焦第一個項目,對嗎? – Tomtom
關閉。我想要第一個選定的行被聚焦。 – MarqueIV