ViewModel があるこのコードがあり、ViewModel にはすべてのプロパティを取得するプロパティがあります。
これは大まかな擬似コードです:
public class MyClassViewModel : INotifyPropertyChanged
{
public MyClassViewModel ()
{
}
public BaseClass myClassBase { get ; set; }
public string Title
{
get
{
return myClassBase.Title;
}
set
{
myClassBase.Title = value;
RaisePropertyChanged("Title");
}
}
public string Description
{
get
{
return myClassBase.Description;
}
set
{
myClassBase.Description = value;
RaisePropertyChanged("Description");
}
}
}
これが BaseClass です。
public class BaseClass
{
public BaseClass()
{
}
public string Title {get;set;}
public string Description {get;set;}
}
CheckItemViewModel は UI にバインドされたものです。したがって、 MyClassViewModel .Title = "Test";のようなことをすると UI を適切に更新します。
ただし、特定の理由 (Javascript - Chakra インターフェイス) でMyClassViewModel.myClassBase.Title = "Test"のようなことをする必要があります。この問題は、RaisePropertyChanged がないため、UI が更新されないことです。
BaseClass 自体の内部に RaisePropertyChangedを実装しても、まだ機能しません。BaseClass の PropertyChanged は常に null であるため、機能しません。
MyClassViewModel が UI にバインドされているためだと思います。そのため、BaseClass の PropertyChanged はバインドされません。
親の RaisePropertyChanged をトリガーする方法はありますか?
ありがとうございました