ChuckJと同意します - 通常、DomainContextはビューモデルの一部を形成します。たとえば、商品カタログに対して検索できる検索ページがあるとします。
サーバーの場合:ここで私は物事を構築したい方法です
class Catalog : DomainService {
IQueryable<Product> GetProducts(string keyword) { ... }
}
生成DomainContext:私は書くでしょう
class Catalog : DomainContext {
EntityList<Product> Products { get; }
void LoadProducts(string keyword);
}
ビューモデル:
class SearchViewModel {
Catalog _catalog = new Catalog();
public IEnumerable<Product> Results {
get { return _catalog.Products; }
}
public void Search(string keyword) {
_catalog.Products.Clear();
_catalog.LoadProducts(keyword);
}
}
そして、最後に私のxamlで、私はUserControlのDataContextをSearchViewModelのインスタンスに設定し、ItemsContrをバインドしますResultsプロパティに追加します。私はあなたの選択したViewModelパターンを使用して、ボタンクリックをSearch(これはSearchViewModelが公開するコマンド)にバインドします。私個人的に、私はのようにSilverlight.FXで作業をしているようなもの:
<Button Content="Search"
fxui:Interaction.ClickAction="$model.Search(keywordTextBox.Text)" />
ととして最初にhereを示します。
Chuckが言及しているように、私のビューモデルには、実際にはxboxのListBoxのSelectedItemに双方向でバインドされているSelectedProductなど、別の状態があります。選択した製品の詳細を表示するデータフォーム。
希望に役立ちます!私はこれについてもう少し私のblogでブログをしています。
先週のいくつかの考えの後、私はこれが私が考えていたものだと思っています。 DomianContextは完全なViewModelではなく、その一部です。([必須]のような)DomainServiceのMetadataTypeで定義された属性は、ViewModelに再宣言する必要がありますか、またはDomainContextが検証エンジンによってピックアップされるのに十分なViewModelの一部であるという事実はありますか? –
Nikhilのブログ記事へのリンク:http://www.nikhilk.net/Entry.aspx?id=229 –
[必須]などのメタデータ属性は、ビューモデル自体ではなくエンティティタイプにあります。ビューモデルからエンティティのインスタンスを公開すると、それらは取得されます(たとえば、上記のビューモデルサンプルのプロダクト)。 –