Ich benutze die neueste Template 10 VS Erweiterung, um eine UWP Windows 10 Mobile App zu erstellen. Ich habe die Vorlage aktualisiert, um IOC (Autofac) zu verwenden, damit die ViewModels in der app.xaml.cs
überschriebenen INavigable ResolveForPage(Page page, NavigationService)
Methode aufgelöst werden. Ich habe auch die Seite Klassen jeweils aktualisiert haben eine Ansichtsmodell Eigenschaft wie:Xaml Binding kann ViewModel in Template 10 App nicht sehen
public sealed partial class LoginPage : Page
{
private LoginPageViewModel _viewModel;
public LoginPageViewModel ViewModel => _viewModel ?? (_viewModel = (LoginPageViewModel)DataContext);
public LoginPage()
{
InitializeComponent();
NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
}
}
Das hat bis jetzt gut gewesen, da ich nur x:Bind
in Ansichten verwendet haben und die Bindung an die Ansichtsmodell funktioniert. Da ich die Vorlage 10 Validierungspaket installiert ich einige Ansichten aktualisiert haben wie
<validate:ControlWrapper PropertyName="Password">
<TextBox x:Name="Password"
HorizontalAlignment="Left"
Margin="10,220,0,0"
TextWrapping="Wrap"
Text="{Binding ViewModel.LoginModel.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Top"
Width="{StaticResource FieldWidth}"
Height="60"
PlaceholderText="Password"
FontSize="24"
InputScope="Password">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior>
<Behaviors:FocusAction />
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</TextBox>
</validate:ControlWrapper>
Dieses Problem die ältere Binding
Methode zu verwenden, die ich habe ist, dass der Text verbindlich, nicht Text="{Binding ViewModel.LoginModel.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
nicht Cannot resolve symbol ViewModel due to unknown DataContext
mit dem Fehler arbeiten.
Da ich neu bei UWP bin denke ich, dass ich einige erforderliche Konfiguration fehlt, um sicherzustellen, dass der DataContext auf das richtige ViewModel eingestellt ist. Ich habe versucht, DataContext = this
im app.xaml.cs
Konstruktor hinzuzufügen, aber das hat nicht funktioniert.
Kann mir jemand sagen, welchen Teil des Puzzles ich vermisse?
Das war genau der Hinweis, den ich brauchte, um es zum Laufen zu bringen. Die Bindung so einstellen, wie Sie es vorgeschlagen haben. Ich werde es auch genauer lesen. Jetzt erfahren Sie, warum die Validierungsfehler während der Code-Eingabe nicht in der Ansicht angezeigt werden. Danke für die Hilfe. – Steve
@Steve Froh, dass es geholfen hat. Ein Problem/Problem ist normalerweise ein guter Anfang, um zu lesen, zu lernen und mehr ins Detail zu gehen, um zu verstehen, was passiert ist und warum ich nicht gearbeitet habe. – 1ppCH