ViewModelはビューからモデルを抽象化し、プレゼンテーション用のものを処理するロジックを追加する必要があることを理解しています。MVVMエキスパートはMVVMとDataformについてあなたの意見が必要です
私の質問は:
どのように私は一度に注文と詳細については、ユーザーの入力を処理するために仮定されたデータ形式を作成します。 注文を入力するフィールドと1つの詳細のフィールドが表示されます。
マイモデルには、OrderDetailsのリストを含むオーダーのオブジェクトがあります。
私のOrderEntryFormのViewModelはどのように見えますか?
私はOrderViewModelとOrderDetailViewModelを持ち、 私のOrderEntryFormにはOrderViewModelとOrderDetailViewModelのプロパティが含まれていますか? (ViewModelsをネストしていますか?) この場合、検証はどのように処理されますか?検証はモデルに近づくはずですから? 特に私がRIA-Serviceで作業しているとき... ViewModelに入れても意味がありませんか?
モデルをViewModelからどれだけ抽象化しますか? 例:
private DateTime _OrderDate;
public DateTime OrderDate
{
get { return _OrderDate; }
set
{
if (_OrderDate != value)
{
_OrderDate = value;
OnPropertyChanged("OrderDate");
}
}
}
これは私がモデルのプロパティにViewModelに-プロパティをマッピングする必要が意味するであろう。
public DateTime OrderDate
{
get { return Model.OrderDate; }
set
{
if (Model.OrderDate != value)
{
Model.OrderDate = value;
OnPropertyChanged("OrderDate");
}
}
}
をモデルに渡すrequiereう:
この例で...こちらのモデルから検証ロジックを活用することはできません。モデルの検証ロジックへのアクセスだけでなく、カップリングを持っている...テーブルの単なる表現ではない本当の抽象化というのViewModelのを使用するWebショーのデータフォーム上の
ほとんどの例...
私が知っていると私は、この
stackoverflow.com/questions/744474/combining-net-ria-services-and-mvvm-in-silverlight-3-0
私もこれにnikhilsのブログ投稿を読んで見たが、これは、データベースのテーブルからの製品のみストレートマッピング... =(
Iを処理します質問の多くを知って...
このトピックについてのあなたの意見はありますか? どのように複雑なデータフォームを扱いますか?
は、第二のオプションは、入力されたViewModelにやモデル –
silverfighter
を受け取るコンストラクタのいずれかを意味するだろうなど、OrderDetailは、追加の子供がいた場合など想像し、複雑さに応じて私はあなたの声明は、 "VMはモデルの抽象であり、ビューではない"と誤解を招く/混乱していると思います。ビューモデルは基本的にビューのモデル(「抽象化」)です。それはビューのモデルではありません。 fowlersを確認するプレゼンテーションモデルのパターン – Schneider