2009-12-02 6 views
0

J'ai un TreeViewItem que lorsque Selected, appelle une méthode. Cependant, je constate que lorsque l'événement Selected est appelé, l'événement Selected pour le parent TreeViewItem semble également appelé.Comment puis-je empêcher TreeViewItem de déclencher l'événement Selected pour lui-même et son parent?

Je préférerais vraiment que cela ne se produise pas, mais je n'ai pas trouvé de documentation expliquant pourquoi cela se produit en premier lieu.

Quelqu'un pourrait-il m'éclairer sur la raison pour laquelle cela se produit au départ, et peut-être comment l'arrêter.

Je suis ouvert à différents objets au lieu d'un treeviewitem, mais j'ai besoin de maintenir l'indication visuelle de la sélection.

Merci!

PS: Ceci est un extrait de ce que j'ai.

<TreeViewItem IsExpanded="True" IsSelected="False" Selected="Fire_MaxCustomer_Selected_Event"> 
         <TreeViewItem.Header> 
          <TextBlock Text="{Binding Path=DisplayName}" /> 
         </TreeViewItem.Header> 
         <TreeViewItem.Items> 
          <TreeViewItem Header="Orders &amp; Credits" Selected="Fire_Orders_Credits_Event" /> 

Répondre

0

Je suis incapable de sélectionner quoi que ce soit en fonction de l'extrait que vous avez fourni. Vous êtes conscient que les événements de WPF sont routés? Sélectionné est un événement Bubbling qui va bouger sur l'arbre visuel et peut être consommé plusieurs fois. Vous pouvez empêcher cela en définissant e.Handled sur true dans le gestionnaire d'événements.

+0

Je sais que l'événement est routé, et qu'il fait des bulles dans l'arborescence visuelle. Ce que je ne savais pas, c'est que je pourrais définir e.Handeled = true, et ça ferait ... sauter la bulle ..... – Russ

Questions connexes