Как лучше обрабатывать клик мышкой? - PullRequest
0 голосов
/ 23 октября 2009

Я вложил ListView в wpf. Пользователь может дважды щелкнуть элемент списка и открыть документ элемента. Итак, у меня есть ListView1_MouseDoubleClick и дочерний listview2 ListView2_MouseDoubleClick.

Но, когда пользователь дважды щелкает элемент listview2, listview1 также получает событие MouseDoubleClick.

Итак ... для решения этой проблемы, насколько я знаю, есть два решения:

A) Добавить флаг bool и установить значение false

code:
Listview2_mousedoubleclick()
{
    flag=true;
}

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

B) Используйте VisualTreeHelper и проанализируйте e.Source, чтобы найти, какой из них должен ответить ...

Вопрос: Какой путь лучше?

1 Ответ

1 голос
/ 23 октября 2009

Я думаю, вы видите перенаправленное событие, поднимающееся здесь по дереву управления. Вы можете установить свойство Handled в самом событии, когда обрабатываете его, чтобы не допустить дальнейшего пузырения. Я не знаю точных подробностей прямо сейчас, так как мои знания WPF немного устарели, но был способ остановить такую ​​цепочку обработки событий в определенной точке, которой вы управляете.

...