Question

J'ai le problème suivant:

Dans mon TreeView, j'ai ajouté une fonctionnalité de désélection en appelant ma propre méthode deselect () lorsque l'utilisateur clique sur TreeView mais pas sur TreeViewItem. Voici ma méthode TreeView:

public void deselectAll()
{
    TreeViewItem item = SelectedItem as TreeViewItem;
    if (item != null)
    {
        this.Focus();
        item.IsSelected = false;
    }
}

Mon problème est que je ne peux pas resélectionner un TreeViewItem après l'avoir désélectionné.J'ai lu que la focalisation du TreeView lui-même devrait résoudre ce problème, mais ce n'est pas le cas.Cela n'a pas non plus d'importance si je mets le 'Focus ()' avant ou après le 'IsSelected= false'.

Quelqu'un a-t-il une idée de la raison pour laquelle cela ne fonctionne pas?Toute réflexion serait appréciée.

Était-ce utile?

La solution

après avoir défini item.IsSelected= false;vous devez appeler .Focus () pour votre arborescence.

        <TreeView MouseLeftButtonDown="TreeView_MouseLeftButtonDown">
            <TreeViewItem Header="Employee1">
                <TreeViewItem Header="Jesper"/>
                <TreeViewItem Header="Aaberg"/>
                <TreeViewItem Header="12345"/>
            </TreeViewItem>
            <TreeViewItem Header="Employee2">
                <TreeViewItem Header="Dominik"/>
                <TreeViewItem Header="Paiha"/>
                <TreeViewItem Header="98765"/>
            </TreeViewItem>
        </TreeView>

    private void TreeView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var tv = sender as TreeView;

        if (tv != null)
        {
            var item = (TreeViewItem)tv.SelectedItem;
            item.IsSelected = false;
            tv.Focus();
        }
    }

vous avez écrit focus () ne résout pas votre problème.où appelez-vous votre deselectAll ()?

comme solution de contournement, vous pouvez utiliser MouseLeftDown pour définir un élément comme sélectionné.

ps: n'oubliez pas de marquer une réponse comme réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top