J'ai un TreeView qui lance une nouvelle fenêtre lorsque chacun de son événement TreeViewItems Selected est déclenché.Parent TreeView Élément événement fantôme sélectionné!
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="300"
Width="300">
<Grid>
<TreeView Name="treeView1">
<TreeViewItem Header="Root">
<TreeViewItem Header="Parent" Selected="ParentTreeViewItem_Selected">
<TreeViewItem Header="Child" Selected="TreeViewItem_Selected" ></TreeViewItem>
</TreeViewItem>
</TreeViewItem>
</TreeView>
</Grid>
</Window>
code Derrière
namespace WpfApplication1
{ public partial class Window1: Fenêtre { publique Window1() { InitializeComponent(); }
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
Window w = new Window();
w.Show();
e.Handled = true;
}
private void ParentTreeViewItem_Selected(object sender, RoutedEventArgs e)
{
}
}
}
Lorsque je clique sur le nœud enfant de la nouvelle fenêtre est lancée comme prévu. Cependant, imédiatement après ses parents, l'événement sélectionné est déclenché en volant le focus de la nouvelle fenêtre, et en marquant le nœud parent comme la sélection actuelle!
Je m'attendais à ce que la fenêtre nouvellement lancée soit mise au point, et le nœud sur lequel on cliquait deviendrait gris en indiquant à l'utilisateur sa sélection. Est-ce que quelqu'un a une idée de pourquoi cela arrive et comment je peux l'empêcher?
Merci, Brette
J'ai trouvé le même problème lors du lancement de ce IsSelected setter de la propriété du ViewModel. De là, vous ne pouvez pas utiliser Dispatcher, donc j'utilise cette solution: http://stackoverflow.com/a/5971732/383129 – JoanComasFdz