0
我創建了兩個viewmodel,MyViewModel,MyViewModel2。 MyViewModel2包含MyViewModel作爲屬性。 MyViewModel包含EF/WCF Ria服務中的一個實體MyEntity。如何從ViewModel捕獲PropertyChanged事件?
在MyViewModel2中,我想捕獲MyEntity中的任何項目更改以進行數據綁定。我的代碼如下圖所示:
public class MyViewModel : ViewModelBase
{
//....
public MyViewModel(myEntity myEntity)
: this()
{
//....
this._myEntity = myEntity;
this._myEntity.PropertyChanged += new PropertyChangedEventHandler(_myEntity_PropertyChanged);
this.RaisePropertyChanged("MyEntity");
}
void _myEntity_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
this.RaisePropertyChanged("MyEntity");
}
private MyEntity _myEntity;
public MyEntity MyEntity
{
get { return this._myEntity; }
set
{
if (value != this._myEntity)
{
this._myEntity = value;
RaisePropertyChanged("MyEntity");
}
}
}
}
public class MyViewModel2 : ViewModelBase
{
public MyViewModel2(){
this._MyViewModel = new MyViewModel();
this._MyViewModel.PropertyChanged += new PropertyChangedEventHandler(_MyViewModel_PropertyChanged);
}
void _MyViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
//do something here....
}
private MyViewModel _MyViewModel;
public MyViewModel MyViewModel
{
get { return this._MyViewModel; }
set
{
if (value != this._MyViewModel)
{
this._MyViewModel = value;
RaisePropertyChanged("MyViewModel");
}
}
}
}
然後我運行應用程序,並在myEntity所改變的數據,但我不能捕捉MyViewModel2改變的事件。
如何解決此問題?