DataGridにはDataGridTextColumnsを使用していくつかのデータを表示します。データの一部は変更できます。矢印を使って移動する以外は、すべてうまく動作します。矢印を使ってセルを選択して移動すると、すべて正常に動作しますが、TextBoxCellでも同じことをしたいのです。 私はVisualTreeHelperでビジュアルツリーを通り、次のセルを取得してTextBoxを選択していました。しかし、私はそれぞれのキーを別々に処理しなければならなかったので、非常に長いコードでした。セルが既にこのようにイベントを処理しているとすれば、私はこれを試した:矢印を使用してDataGridのテキストボックスを移動するWPF
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e) {
TextBox tb = sender as TextBox;
var temp = VisualTreeHelper.GetParent(tb);
var cell = temp as DataGridCell;
while (cell == null) {
temp = VisualTreeHelper.GetParent(temp);
cell = temp as DataGridCell;
}
if (tb == null)
return;
cell.RaiseEvent(e);
}
私はキーを使うたびに何も起こりません。イベントはちょうどスキップされます。コードはRaiseEventの途中で実行されますが、そのメソッドが呼び出されると何も起こりません。 アイデア ありがとうございます!