我正在嘗試爲SilverLight DataGrid(sdk:DataGrid
)創建Tab鍵導航。正如你所知道的DataGrid有沒有這樣的導航,但如果按F2
,編輯單元格之後,你按Tab
那麼下一個單元格將在編輯模式中選擇:在編輯模式下的Tab鍵導航SilverLight DataGrid
的形象描述:我已經選擇了第一行的第二列(Name),我編輯了這個單元格(按下F2
),之後我按下了Tab
,正如你所看到的,在編輯模式下選擇了下一個單元格。
但實際上我B
列包含Button
或Image
(不幸的是,現在我對電腦不工作,我無法證明我與Button
的DataGrid),如果我按F2
了Date
細胞之後,我按Tab
然後Button
下一個單元格消失,我無法繼續使用箭頭或Tab
導航(好像DataGrid
掛起)。
如果我重寫DatGrid.KeyUp:
void MyGrid_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
//do nothing
}
}
然後DataGrid中有一個像前面一樣的行爲,如果我使用F2
和Tab
。
我怎樣才能做到以下幾點:
1)按F2
; 2)如果在F2
之後按Tab
,則下一個單元不會像本例那樣進入編輯模式。我希望在Tab
之後的下一個單元格只會在沒有編輯的情況下進行集中,就像我使用鼠標點擊單元格一樣。
謝謝!
P.S.如果我重寫LostFocus
:
void MyGrid_LostFocus(object sender, RoutedEventArgs e)
{
MyGrid.CommitEdit();
}
它不包含Button
列解決問題。