senza selezione e ricerca di un alberoviewItem in unaview di albero
Domanda
Ho il seguente problema:
Nel mio TreeView ho aggiunto funzionalità non selezionate chiamando il mio deselect ()-Metodo quando l'utente fa clic su TreeView ma non un TreeViewItem. Ecco il mio metodo TreeView:
public void deselectAll()
{
TreeViewItem item = SelectedItem as TreeViewItem;
if (item != null)
{
this.Focus();
item.IsSelected = false;
}
}
Il mio problema è che non riesco a riparare un TreeViewItem dopo averlo disastro. Ho letto, che focalizzare la stessa TreeView dovrebbe risolvere questo problema, ma non lo è. Inoltre, non importa se metto il "focus ()" prima o dopo il "ISSELECT = FALSE".
Qualcuno ha un'idea del motivo per cui non funziona? Ogni pensiero sarebbe apprezzato.
Soluzione
Dopo aver impostato l'oggetto.isselected = false; Devi chiamare .Focus () per il tuo albero.
<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();
}
}
Hai scritto focus () non risolvere il tuo problema. Dove chiami il tuo deselectall ()?
Come soluzione alternativa è possibile utilizzare il mouseleftdown per impostare un elemento come selezionato.
PS: non dimenticare di contrassegnare una risposta come anwser.