나는 주위에 쉬운 길은 없다고 생각합니다.
가 INotifyPropertyChanged
을 지원하므로 어느 쪽이든 당신이 모델을 변경할 수 있습니다 - 예를 들어, 나는 유래 라이브러리를 사용하는 경우
class Model : MvxNotifyPropertyChanged
{
public string A {
get { return _a; }
set { _a = value; RaisePropertyChanged(() => A); }
}
}
나는이 첫 번째 방법을 사용했습니다 - http://stacky.codeplex.com/SourceControl/latest#trunk/source/Stacky/Entities/Answer.cs
같은 모델 엔티티를했다 ... 또는 다른 INotifyPropertyChanged
클래스 모델을 포장 할 수 있습니다
class ModelWrapper : MvxNotifyPropertyChanged
{
private readonly Model _m;
public ModelWrapper(Model m)
{ _m = m; }
public string A {
get { return _m.A; }
set { _m.A = value; RaisePropertyChanged(() => A); }
}
}
필자는 Model 클래스를 제어하지 못했을 때이 접근법을 사용했습니다.
... 또는 접근의 확장으로, 당신은 부모의 ViewModel까지 속성을 평평하게 할 수 있습니다 단지 몇가있는 경우에만 때이 방법을 사용했습니다
class MyViewModel : MvxViewModel
{
private readonly Model _m;
public ModelWrapper(Model m)
{ _m = m; }
public string A {
get { return _m.A; }
set { _m.A = value; RaisePropertyChanged(() => A); }
}
}
걱정할 속성.
전체 ... 뷰 모델이 Model of the View
있을 것입니다 기억 -이 모델 객체로/속성 값을 복사 OK입니다.
모델 인스턴스의 속성 'A'가 변경되면 '모델'의 'RaisePropertyChanged'가 실행되지 않습니다. –