ChuckJ와 동의 - 일반적으로 DomainContext는 뷰 모델의 일부를 형성합니다. 예를 들어 제품 카탈로그를 검색 할 수있는 검색 페이지가 있다고 가정 해 보겠습니다.
class Catalog : DomainContext {
EntityList<Product> Products { get; }
void LoadProducts(string keyword);
}
뷰 모델은 내가 작성합니다 :
class Catalog : DomainService {
IQueryable<Product> GetProducts(string keyword) { ... }
}
생성 된 DomainContext : 서버에서
: 여기에 내가 일을 구조 거라고 어떻게
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을 바인딩합니다. ol을 Results 속성에 추가합니다. 원하는 ViewModel 패턴을 사용하여 버튼 클릭을 검색에 바인딩 할 수 있습니다 (SearchViewModel이 효과적으로 표시하는 명령 임).
<Button Content="Search"
fxui:Interaction.ClickAction="$model.Search(keywordTextBox.Text)" />
하고 처음 here을 표시 : 나는 개인적으로 내가 같이 Silverlight.FX 작업 한 것을 좋아한다.
Chuck이 언급 한 것처럼 실제로 내 뷰 모델에는 다른 상태가있을 수 있습니다. 예를 들어, SelectedProduct는 내 xaml의 ListBox의 SelectedItem에 양방향으로 바인딩 될 수 있으며 다음과 같은 SelectedProduct를 DataContext로 바인딩합니다. 선택된 제품의 세부 사항을 보여주는 DataForm.
희망 하시겠습니까? 나는 이것에 관해 더 많이 나의 blog에 blogging 할 것이다.
지난 한 주 동안 생각한 끝에 이것이 내가 생각한 것이라고 생각합니다. DomianContext는 완전한 ViewModel가 아니고, 그 일부입니다.DomainService의 MetadataType에 정의 된 속성 (예 : [필수])은 ViewModel에서 다시 선언해야하거나 DomainContext가 유효성 검사 엔진에서 충분히 픽업 할 수있는 ViewModel의 일부인지 여부를 다시 정의해야합니까? –
주제에 대한 Nikhil의 블로그 게시물 링크 : http://www.nikhilk.net/Entry.aspx?id=229 –
[필수] 메타 데이터 속성은보기 모델 자체가 아닌 엔티티 유형에 있습니다. 뷰 모델 (예 : 위의 뷰 모델 샘플에있는 제품)에서 엔티티의 인스턴스를 노출하면 해당 개체가 선택됩니다. –