XAMLPerché l'evento MouseDoubleClick di TreeViewItem viene generato più volte per doppio clic?
<TreeView Name="GroupView" ItemsSource="{Binding Documents}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="OnTreeNodeDoubleClick"/>
</Style>
</TreeView.ItemContainerStyle>
....
</TreeView>
codice sottostante
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);
}
trovo che per un doppio click, il gestore di eventi viene chiamato più volte. Sto cercando di aprire un documento in una scheda con un doppio clic sul nodo dell'albero corrispondente; quindi avrei bisogno di filtrare le chiamate extra.
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
Nella mia app leggermente complicata, viene generato 4 volte per doppio clic. Su una semplice ripro-app, viene sollevato 2 volte per doppio clic. Anche tutti i parametri degli argomenti degli eventi sono uguali, quindi non riesco a distinguere l'ultimo di un set.
Qualche idea del perché è così?
Stai usando la visualizzazione ad albero all'interno di UpdatePanel? – Kangkan
@Kangkan: No. Questa non è una web-app; una semplice app per desktop. – Gishu
Ho avuto lo stesso problema una volta, non l'ho mai capito. Ho installato il gestore di eventi doubleclick su treeview (invece che su treeviewitems) e ho appena utilizzato la proprietà selecteditem ... –