wpf アプリケーションに dataGrid があり、ダブルクリック マウス イベントを使用して、dataGrid で選択された要素の詳細を表示します。
ただし、垂直スクロールのナビゲーション矢印を使用すると問題が発生します。マウスボタンをすばやくクリックすると、ダブルのイベントが発生することが非常に一般的ですが、ダブルクリックしたときにのみ詳細を表示したいからですナビゲーション矢印ではなく、データグリッドの行。
ナビゲーション矢印をクリックしたときにダブルクリック イベントを無効にするにはどうすればよいですか?
ありがとう。
編集: マウス入力バインディングとジェスチャを使用するソリューションを見つけました。垂直または水平スクロールバーではなく、行ゾーンをダブルクリックした場合にのみ、入力バインディングがコマンドを起動するようです。ただし、テーブルに数行しかなく、最後の行の下に灰色のゾーンが表示され、このゾーンをダブルクリックすると、イベントが発生するため、同じ問題が発生しますが、少なくともスクロールバー。
解決策は次のとおりです。
AXML
<DataGrid>
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding DgdComponentesMouseDoubleClickCommand}" CommandParameter="{Binding ElementName=dgdComponentes, Path=SelectedItems, Mode=OneWay}"/>
<KeyBinding Key="Enter" Command="{Binding DgdComponentesMouseDoubleClickCommand}" CommandParameter="{Binding ElementName=dgdComponentes, Path=SelectedItems, Mode=OneWay}"/>
</DataGrid.InputBindings>
</DataGrid>
ビューモデル
private RelayCommand<object> _dgdComponentesMouseDoubleClickCommand;
public RelayCommand<object> DgdComponentesMouseDoubleClickCommand
{
get { return _dgdComponentesMouseDoubleClickCommand ?? (_dgdComponentesMouseDoubleClickCommand = new RelayCommand<Object>(dgdComponentesMouseDoubleClick)); }
}