2012-03-05 5 views
0

私たちは、コードビハインドの低いWPFでアプリケーションを開発しています。私たちはたくさんのMVVMとBindingリソースを使用しています。私はWebを検索し、コードビハインドなしでグリッド上でダブルクリックを行う方法を見つけようとしており、AttachedCommandBehaviorプロジェクトが見つかりました。(http://marlongrech.wordpress.com/2008/12/13/DataGridのエリア内でのみAttachedCommandBehaviorをダブルクリックする方法

ユーザーがDataGridをクリックすると正常に動作しますが、Columns HeaderまたはScrollViewerをクリックしたときにMouse_Double_Clickが発生しないようにする必要があります。それで、どうやって修正できるの? AttachedCommandBehaviorは、ユーザーがDataGridの領域内のみをクリックしたときにイベントを発生させる必要があります。 私はあなたのソースをダウンロードして、どのオブジェクトがクリックされているのかを確認しましたが、見つからなかったのです。

よろしくお願いいたします。

+0

グリッド全体に適用するのではなく、グリッド領域にのみ置く –

+0

動作しません。すでに試してみました。どのように動作させるかの例がありますか? –

+0

私は何かを言うのを忘れました:私たちは60列以上のデータグリッドを持っています。 –

答えて

0

これは、我々は問題を解決してきた方法です:私たちは、DataGridとしてユーザーコントロールコンポーネントを作成した、と彼のコードビハインドに、この追加:ユーザーがクリックした場合、基本的に

private void dtgExtended_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
     if (sender is Control 
      && (!e.OriginalSource.ToString().Equals("Microsoft.Windows.Themes.ScrollChrome") && !e.OriginalSource.ToString().Equals("System.Windows.Shapes.Rectangle"))) 
     { 
      e.Handled = false; 
      DataGridDoubleClick c = new DataGridDoubleClick(); 
     } 
     else 
      e.Handled = true; 
    } 

、これだけで識別しScrollBarの領域の四角形の内側、またはScrollBar内に配置します。列のヘッダーにクリックがあるかどうかは識別されません。

しかし、私の問題は解決しました。

関連する問題