Laden...

Binding Eigenschaft von Frame Content

Erstellt von LennoxLex vor einem Jahr Letzter Beitrag vor einem Jahr 375 Views
L
LennoxLex Themenstarter:in
1 Beiträge seit 2022
vor einem Jahr
Binding Eigenschaft von Frame Content

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.

A
764 Beiträge seit 2007
vor einem Jahr

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

190 Beiträge seit 2012
vor einem Jahr

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

  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF