データグリッドにDataGridComboBoxColumn
というデータグリッドがあります。WPF DataGridComboBoxColumnキーの編集
入力するだけで編集モードに入ることができます。
これはDataGridTextColumn
のデフォルトの動作で、この列タイプだけを編集できるようにするにはF2キーを押してください。
F2を押す必要なしにDataGridComboBoxColumn
編集モードに入る方法を教えてください。 Key Pressには理想的ですが、フォーカスを合わせて編集モードに入っても問題ありません。データグリッドの基本的な機能を取り戻す受け入れ答えに
ソリューション 変更:
void Cell_PreviewKeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter || e.Key == Key.Tab)
{
dgBins.CommitEdit();
dgBins.SelectedIndex += 1;
}else if(e.Key.ToString().Length == 1
|| (e.Key.ToString().StartsWith("D") && e.Key.ToString().Length == 2)
|| e.Key.ToString().StartsWith("NumPad")
|| e.Key == Key.Delete
|| e.Key == Key.Back)
{
if (e.OriginalSource is DataGridCell)
{
DataGridCell cell = (sender as DataGridCell);
Control elem = FindChild<Control>(cell, null);
elem.Focus();
}
}
}
ほとんどの場合、入力キー、エスケープキー、タブキーを無視するように修正する必要がありました。また、ユーザーは次の行に移動するためにEnterキーを2回押す必要があります。停止する方法を理解しようとしています。 – MrZander
@MrZanderこれは別の質問の候補です。ですから、別に質問するようにお願いします。そして、この答えがあなたの現在の質問に応じてそれに印を付けるなら。 – AnjumSKhan
これは、これが編集モードに入るのを引き起こしますが、データグリッドの他のすべての機能を破壊します。理想よりも劣るとにかく、問題を修正した修正内容で質問を更新しました。 – MrZander