4

最近、新しい xamarin フォーム プロジェクトで mvvm パターンを処理する必要があります。bindingContext を持つ XAML 上の Page コードは ViewModel です。難しいのは、タスクを達成するためにページが複数の ViewModel を使用する必要があることです。たとえば、My HomePage は連絡先 ViewModel、ユーザー ViewModel、都市 ViewModel などのデータを使用する必要があります。

私はインターネットで検索しましたが、特定のビューにはビューモデルのみを使用する必要があると人々は言います。したがって、上記のビューモデルをすべてラップする新しいビューモデルを作成するか、そのページの子ビューごとに異なる bindingContext を設定する必要があるのでしょうか。

このケースで経験した人は誰でも、どれが最善の解決策ですか。

4

3 に答える 3

1

他のいくつかのクラスをカプセル化する HomePageViewModel を作成したでしょう。

class HomePageViewModel
{
    UserViewModel user;
    ...
}

HomePageViewModel は HomePage の DataContext になり、子レイアウトにはそれぞれのプロパティが割り当てられます。

于 2015-10-11T15:02:19.913 に答える
-1

はい、ビューは MVVM の単一のビュー モデルにのみバインドする必要があります。私は確かに、他のビューモデルから派生したり、ラップしたりしません。ここでの主なアイデアは、ビューに固有のビュー モデルでビューに必要なモデルを使用して、このビューが必要とするものを正確に簡単に確認できるようにすることです。また、ビューを機能させるために必要なコードのみを使用できるため、コードを簡素化することもできます。それ以上でもそれ以下でもありません。

WPF では、ビュー モデルを親バインディング コンテキストとして使用すると、クラス ナビゲーションが可能になるため、モデルがかなり複雑な場合でもうまく機能します。たとえばDataContext.User.Profile.FirstName、ビュー モデルにバインドできます。したがって、ユーザー、連絡先、住所のプロパティを持つビュー モデルを作成できます。

于 2015-10-11T15:09:36.417 に答える