最新のTemplate 10 VS拡張機能を使用して、UWP Windows 10モバイルアプリケーションを作成しています。 app.xaml.cs
オーバーライドされたINavigable ResolveForPage(Page page, NavigationService)
メソッドでViewModelが解決されるように、IOC(Autofac)を使用するようにテンプレートを更新しました。私は唯一のビューでx:Bind
を使用してのviewmodelの作品への結合をしましたので、これは今まで罰金となっているXamlバインディングでテンプレート10のアプリケーションのViewModelが表示されない
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;
}
}
:などのViewModelプロパティを持っている は、私はまた、各ページクラスを更新しました。私は、このような
<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>
として古いBinding
方法を使用するために、いくつかのビューを更新したテンプレート10検証パッケージをインストールしているので、私が持っているこの問題は、テキストが結合点である、Text="{Binding ViewModel.LoginModel.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
はエラーCannot resolve symbol ViewModel due to unknown DataContext
では動作しません。
私はUWPを初めて使い慣れているので、DataContextが正しいViewModelに設定されていることを確認するために、いくつかの必要な設定が欠落していると思います。 app.xaml.cs
コンストラクタにDataContext = this
を追加しようとしましたが、これは機能しませんでした。
パズルのどの部分が不足していると誰に教えてもらえますか?
これは私がそれを動作させるのに必要なヒントでした。あなたが提案したようにバインディングを設定する。もう少し徹底的に読んでいくつもりです。今度は、コードに設定されている検証エラーがなぜビューに表示されないのかを調べる。助けてくれてありがとう。 – Steve
@ Steve Gladそれが助けました。問題や問題は、通常、何が起こったのか、なぜ私がうまくいかなかったのかを理解するために、詳細を読み、学習し、詳細に行く良いスタートです。 – 1ppCH