Warum wird das MouseDoubleClick-Ereignis des TreeViewItems per Doppelklick mehrfach ausgelöst?

XAML

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

Code-Behind -

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);
       }

Ich finde, dass für einen Doppelklick, der event handler mehrfach aufgerufen wird. Ich werde versuchen, öffnen Sie ein Dokument in der Registerkarte auf dem Doppel-klicken Sie auf den entsprechenden Knoten des Baumes; so würde ich benötigen, heraus zu filtern, die extra Anrufe.

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

In meine leicht-kompliziert-app, es wird gehoben 4 mal pro Doppel-klicken. Auf eine einfache repro-app, es wird gehoben 2 mal pro Doppel-klicken. Auch alle Ereignis-argument-Parameter sind die gleichen, also kann ich nicht unterscheiden, der Letzte Satz.

Irgendwelche Ideen, warum dies so ist, wie es ist?

InformationsquelleAutor der Frage Gishu | 2010-02-17

Schreibe einen Kommentar