DataGrid
ユーザーがで他のコントロールをクリックしたときに、選択したアイテムをから削除したいUserControl
。グリッドには「拡張」としての選択モードがあります。
私は1つのアプローチを考えました
上のLostFocusイベントDataGrid
または上の同じイベントDataGridCell
:-しかし、このイベントは、グリッド内の任意の行を選択するたびに呼び出されます。そのため、ここで選択したアイテムを削除することはできません。
FrameworkElement.PreviewGotKeyboardFocusEvent
このようにあなたの場合はUserControlであるルートでそれを使用して処理してください:
<UserControl ... FrameworkElement.PreviewGotKeyboardFocus="FrameworkPreviewGotKeyboardFocus" />
//ハンドラー:
e.Handledに注意し、それに応じて値を設定します。
private void FrameworkPreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (sender is FrameworkElement)
{
Debug.WriteLine(((FrameworkElement)e.OriginalSource).ToString());
if (!((FrameworkElement)e.OriginalSource).IsDescendantOf(MyDataGrid))
{
Debug.WriteLine("Datagrid lost focus completely !");
//e.Handled = true;
// Do something now
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加