Почему Событие mouseDoubleClick TreeViewItem повышает многократно на двойной щелчок?

XAML

<TreeView Name="GroupView" ItemsSource="{Binding Documents}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}">
                    <EventSetter Event="MouseDoubleClick" Handler="OnTreeNodeDoubleClick"/>
                </Style>
            </TreeView.ItemContainerStyle>
            ....
</TreeView>

Код - Позади

private void OnTreeNodeDoubleClick(object sender, MouseButtonEventArgs mouseEvtArgs)
       {
           Console.WriteLine("{3} MouseDoubleClick Clicks={0} ChangedButton={1} Source={2} Handled={4} ButtonState={5}",
               mouseEvtArgs.ClickCount, mouseEvtArgs.ChangedButton, mouseEvtArgs.OriginalSource,
               mouseEvtArgs.Timestamp, mouseEvtArgs.Handled, mouseEvtArgs.ButtonState);
       }

Я нахожу, что для одного двойного щелчка, обработчик событий называют многократно. Я пытаюсь открыть документ на вкладке при двойном щелчке по соответствующему древовидному узлу; таким образом, я должен был бы отфильтровать дополнительные вызовы.

23479156 MouseDoubleClick Clicks=1 ChangedButton=Left Source=System.Windows.Controls.TextBlock Handled=False ButtonState=Pressed
23479156 MouseDoubleClick Clicks=1 ChangedButton=Left Source=System.Windows.Controls.TextBlock Handled=False ButtonState=Pressed

В моем немного сложном приложении это повышается 4 раза на двойной щелчок. На простом размноженном приложении это повышается 2 раза на двойной щелчок. Также все параметры аргумента события являются тем же также, таким образом, я не могу отличить последний набора.

Какие-либо идеи, почему это - способ, которым это?

21
задан Dave Clemmer 24 September 2011 в 17:38
поделиться

1 ответ

Наиболее вероятная причина заключается в том, что обработчик двойного щелчка установлен несколько раз, поэтому каждый экземпляр обработчика вызывается один раз для каждого щелчка.

-1
ответ дан 29 November 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: