So verhindern Sie die Auswahl eines TreeViewItem basierend auf einer Bedingung

8

Ich habe wpf TreeView - an einige Daten gebunden. Die Strukturansicht befindet sich auf der linken Seite eines Fensters, das in zwei Bereiche unterteilt ist, wobei der Baum die Navigation ist und ein Bereich auf der rechten Seite den Inhalt abhängig vom ausgewählten Baumknoten ändert.

Nicht alle Knoten der Baumansicht erzeugen Detailinformationen. Ich möchte die Auswahl dieser Knoten deaktivieren. Irgendeine Idee?

Danke

    
jama64 01.02.2011, 21:14
quelle

2 Antworten

18

@ jama64: Sie können erreichen, was Sie wollen, wenn Sie den Style von Property IsEnabled in Focusable ändern.

%Vor%     
M.C. 25.07.2011 16:34
quelle
6

Haben Sie etwas wie eine boolesche Eigenschaft in Ihrer Quelle namens HasDetails oder etwas? In diesem Fall können Sie so etwas verwenden. Erstellen Sie einen MultiDataTrigger im ItemContainerStyle, der an HasDetails im DataContext und IsSelected für den TreeViewItem bindet und wenn beide True sind (also True, dass HasDetails False ist :-), starten Sie ein Storyboard, das "abwählen" neu ausgewählt TreeViewItem .

Dies deaktiviert die Auswahl für alle TreeViewItem , die keine Details haben, aber trotzdem erweiterbar sind. Hoffentlich war das, wonach du gesucht hast

%Vor%

Aktualisieren

Um TreeViewItem zu deaktivieren, wo HasDetails False ist, können Sie dies verwenden

%Vor%     
Fredrik Hedblad 01.02.2011 21:55
quelle

Tags und Links