0

ListView私はwpfにネストしました。ユーザーはリスト アイテムをダブルクリックして、アイテム ドキュメントを開くことができます。だから、私はListView1_MouseDoubleClick子 listview2 を持っていListView2_MouseDoubleClickます。

ただし、ユーザーが listview2 item をダブルクリックすると、listview1 もMouseDoubleClickイベントを受け取ります。

だから...私が知る限り、この問題を解決するには2つの解決策があります:

A) bool フラグを追加して false に設定する

code:
Listview2_mousedoubleclick()
{
    flag=true;
}

ListView1_mousedoubleclick()
{
    if (flag==true) { flag=false;return}
}

B) 使用VisualTreeHelperおよび分析e.Sourceして、応答する必要があるものを見つけます...

質問: どちらの方法が良いですか?

4

1 に答える 1

1

ここでは、ルーティング イベントがコントロール ツリーをバブリングしているのを見ていると思います。Handledイベントを処理するときに、イベント自体にプロパティを設定して、それ以上バブリングしないようにすることができます。私のWPFの知識は少しさびているので、正確な詳細はわかりませんが、制御する特定のポイントでそのようなイベント処理チェーンを停止する方法がありました.

于 2009-10-23T15:32:41.063 に答える