Hallo ihr lieben,
Ich möchte gern die isVisible Eigenschaft eines TabItems an eine Property eines darunterliegenden Contents binden. Kann mir jemand helfen?
<TabItem Header="Grunddatenbogen" >
<Frame Content="{Binding gdb}" />
</TabItem>
<TabItem Header="Psyche" isVisible="{Binding ???}">
<Frame Content="{Binding psy}" />
</TabItem>
gdb und psy sind Pages die ein eigenes ViewModel haben. Ich möchte jetzt von dem GrunddatenViewModel der gdb Page die Eigenschaft hasPsy an das TabItem "Psyche" binden. Grund: Auf dem Grunddatenbogen kann man PsycheBogen auswählen, ist es gewählt soll der Tab sichtbar sein, ist er nicht gewählt dann nicht.
Hallo LennoxLex
Mach im HauptViewModel eine Eigenschaft IsPsyVisible. Die Info aus dem GrunddatenViewModel kannst du, je nachdem wie eng du die Bindung haben möchtest, per Event holen, oder direkt vom GrunddatenViewModel. Dein HauptViewModel muss also das GrunddatenViewModel kennen.
Gibt noch andere Möglichkeiten, aber das wird zu aufwendig.
Beispiel:
public bool IsPsyVisible => _grunddatenViewModel.HasPsy;
Gruß
Alf
Hallo,
isVisible kannst du nicht setzen. Dafür gibt es Visibility.
Siehe hier: Binding a Button's visibility to a bool value in ViewModel
Dafür gibt es diesen Converter: BooleanToVisibilityConverter Klasse