2016-06-17 8 views
2

Ich verwende Template 10 mit einem Hamburger-Menü für mein Projekt. Um die Schaltflächen dynamisch zu ändern, je nachdem, ob der Benutzer angemeldet ist oder nicht, dachte ich, ich würde ein ViewModel für die Shell erstellen. Leider scheint der DataContext nicht korrekt auf das ViewModel ausgerichtet zu sein.Shell ViewModel in Template10

Ich habe den Datenkontext zur Shell.xaml hinzugefügt, aber Bindings machen nichts. Gibt es einen besseren Weg, oder mache ich etwas falsch?

Shell.xaml Schnipsel:

den Datenkontext Rahmen:

<Page.DataContext> 
     <viewModels:ShellViewModel x:Name="ViewModel" /> 
</Page.DataContext> 

Binding Sichtbarkeit Ansichtsmodell:

<Controls:HamburgerButtonInfo AutomationProperties.Name="My Journey" 
             ClearHistory="False" 
             PageType="views:MyJourneyPage" 
             Visibility="{Binding LoggedIn, Converter={StaticResource BooleanToVisibilityConverter}}"> 

ShellViewModel Schnipsel:

private bool _loggedIn; 
public bool LoggedIn { get { return _loggedIn; } set { Set(ref _loggedIn, value); } } 

V isual Studio meldet: Fehler: BindingExpression Pfadfehler: Eigenschaft 'LoggedIn' nicht in 'Template10.Controls.HamburgerButtonInfo' gefunden. BindingExpression: Pfad = 'LoggedIn' DataItem = 'Template10.Controls.HamburgerButtonInfo'; Zielelement ist 'Template10.Controls.HamburgerButtonInfo' (Name = 'null'); Zieleigenschaft ist 'Sichtbarkeit' (Typ 'Sichtbarkeit')

Antwort

1

gelöst, indem die Sichtbarkeit zu ändern Bindung an:

"{x:Bind Path=ViewModel.LoggedIn, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverterInverse}}" 
1

Der Pfad für das Ansichtsmodell und die Eigenschaft, die Sie für die Anmeldung erstellt haben, wird nicht angezeigt, Path = LoggedIn, DataContext = ViewModel, abhängig von der erforderlichen Tiefe Finde die Kombination für den DataContext. Das liegt mehr als wahrscheinlich an dem DataContext, den das DataItem gerade jetzt sieht, in Bezug auf die Sammlung, in der es in der Hamburgersteuerung enthalten ist.

+0

Dank! Das hat mich auf den richtigen Weg gebracht! – LostLogic