注:私はこの問題を解決する方法を見つけましたので、私は参考のためにこの記事を投稿しています。Silverlight DataGrid MouseLeftButtonDownイベントが行をクリックしても表示されない
は私がUIElement.MouseLeftButtonDownに引っ掛けることにより、SilverlightのDataGridの上ダブルクリック機能性を提供しようとしているが、私はXAMLまたはDataGrid.MouseLeftButtonDown +=
構文を使用してDataGrid.MouseLeftButtonDownに加入したときに、私は上をクリックしたときに、私のイベントハンドラが呼び出されていませんDataGrid内の行。ヘッダーをクリックすると、イベントが発生します。
私は親ユーザーコントロールレベルで同じイベントにサブスクライブする場合は、Silverlight RoutedEventsに基づいて期待されるが、その後、私はクリックがどこかのDataGridまたは上で発生したかどうかを検出する必要があるとして、イベントハンドラが正常に呼び出されます。
このUIElement.AddHandler構文を使用してイベントを購読すると、次に示すように、handlesEventsToo:trueパラメータに基づいて期待どおりに動作します。
dataGrid.AddHandler(UIElement.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(dataGrid_MouseLeftButtonDown)
, handledEventsToo: true);
私が最初に期待したものではありませんこれは、子のUIElementsの一つで、デフォルトでは、イベントバブリングを防止するため、扱いとしてDataGridの実装はこれらのイベントをマーキングされているようです。もっと考えれば、クリックの振る舞いはあらゆる種類のもの(項目の選択、フィールドの編集など)を駆動するので、おそらく実装が理にかなっていることがわかります。