제목이 혼란 스럽긴하지만 죄송합니다. 내 질문을 단축하는 방법을 모르겠습니다. 어쨌든, 여기 있습니다.MVVM - VM에서 노출 된 Model 객체에 직접 바인딩하거나 Model 속성에 액세스하기 위해 VM에서 별도의 속성을 구현합니다.
WPF, Entity Framework 및 MVVM을 사용하고 있습니다.
현재 내 뷰 모델에, 나는 그런 속성
public Model.Document Document {get;set;} //Model.Document is an EF Entity
을 가지고, XAML에서, 나는
<TextBox Text={Binding Path=Document.Title}/>
제목에 결합은 물론 모델의 속성입니다. 질문 다음 지금
내 마음에 온 : 난 그렇게
public string Title
{
get { return Document.Title; }
set { Document.Title = value; }
}
처럼 뷰 모델에 속성을 추가하고 다음과 같이 결합하면 가 더 나은되지 않을 것보기에서 모델을 분리하려면
<TextBox Text={Binding Path=Title}/>
어떤 방법을 사용 하시겠습니까?
꽤 재미있는 기사 (데이터 바인딩 참조가 어떻게 해석되는지)입니다. –
정말 재미있는 기사입니다. Document가 상속하는 [ 'EntityObject'] (http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.entityobject.aspx)는 'INotifyPropertyChanged'를 구현하므로주의를 기울여야합니다. 의. 그러나, 내 ViewModel INotifyPropertyChanged도 구현합니다. 따라서 어떤 방식 으로든 상관 없습니다. –
DependencyProperty로 속성을 구현하는 것은 내 ViewModel이 DependencyObject에서 상속하지 않기 때문에 옵션이 아닙니다. (필자가 믿는 요구 사항입니까?). 오히려 MVVM Light 프레임 워크의 ViewModelBase 클래스에서 상속됩니다. –