Comment faire pour désélectionner tous les éléments sélectionnés dans un WPF arborescence en cliquant sur certaines zone vide?

J'ai une assez drôle de problème avec WPF. J'ai une arborescence, et de sélectionner les éléments fonctionne très bien jusqu'à présent. Le problème c'est que je veux pour désélectionner l'élément actuellement sélectionné lorsque l'utilisateur clique à l'intérieur de la zone vide de l'arborescence. Par défaut, le treeview maintient le courant de l'élément sélectionné, et j'ai ajouté une option du menu contextuel pour le désélectionner, ce qui est plutôt hardcore:

//Note: This is done recursivly from the start, so it
//works for child items as well
treeView.ItemContainerGenerator.ContainerFromItem(treeView.SelectedItem) as TreeViewItem).IsSelected = false;

De plus, c'est contre-intuitif, car il oblige l'utilisateur à droite-cliquez sur la première, et la deuxième, après le désélectionner cette façon, l'utilisateur ne peut pas sélectionner plus en cliquant sur l'élément. Comment cela est-il censé fonctionner?

Edit: plus d'information: j'ai ajouté un gestionnaire à l' TreeView à manipuler la souris cliquez sur les événements, mais l'expéditeur est toujours un TreeView exemple, même si je clique directement sur un TreeViewItem. Si j'ajoute un gestionnaire à mon TreeView.ItemTemplate à la place (c'est à dire le premier enfant dans le modèle), je n'ai jamais eu d'événements lorsque je clique sur la zone vide (ce qui est plutôt logique). Le code ressemble à ceci:

    private void MyTreeView_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        if ((sender as TreeViewItem) == null)
        {
            //Always triggered
            System.Diagnostics.Trace.Write("Empty area clicked");
        }
    } 

Et le XAML est la suivante:

<TreeView x:Name="MyTreeView" Margin="3" MouseUp="MyTreeView_MouseUp">
InformationsquelleAutor Anteru | 2009-01-29