2

Windows ユニバーサル アプリのプログラミングは初めてです。Tmeplate10 を使用して最初のアプリを作成することにしました。ビュー モデルで現在のビジュアル状態名を取得するためのベスト プラクティスを知りたいです。

XAML の背後にあるコードでは、次を使用しています。

 VisualState vs = AdaptiveVisualStateGroup.CurrentState;
 if (vs != null)
 {
   string actualStateName = vs.Name
 }

ViewModelで同じものを取得する最良の方法は何ですか?

4

1 に答える 1

2

ビューモデルの視覚的な状態をいじらないでください。これを考慮してください。ビューモデルは、ビューに必要な基本データを処理するために存在します。これは、ビューにデータを表示することと同じではありません。一方、ビューにはデータを表示するロジックがあり、特定のトリガーに基づいてさまざまな視覚的状態でデータを表示します。これらのトリガーは視覚的なトリガーであり、データ トリガーではありません。そのため、ビュー内の表示状態とビューの暗黙的なコード ビハインドを処理する必要があります。

ユーザーが突然ログアウトした場合など、データがビューに影響を与える場合、それもビューモデルのプロパティ (IsLoggedIn など) であり、ビューは視覚的な状態を変更するために使用します。ビューモデルで視覚状態への参照を取得しようとしている場合は、MVVM の意図を短絡しているようなものです。

そうは言っても、私はあなたのアプリの開発者ではありません。また、表示しているコードは、現在の表示状態を確実に取得する唯一の方法です。複数の表示状態グループにわたって、一度に複数の表示状態をアクティブにできることに注意してください。ビューモードで表示状態グループ クラスを直接参照せずに、提供したコードを実行するにはどうすればよいでしょうか? どうやってそこにたどり着くの?

Page.OnNavigatedTo() { ViewModel.Group = AdaptiveVisualStateGroup; }方法です。

しかし、残りの回答を検討していただければ幸いです。

于 2016-02-10T05:42:24.093 に答える