0
ビューモデルで何かが発生した場合、特定のコードをビューで実行したいと思います。私はプリズムイベントアグリゲータに見てきましたが、私はエド・プランケットが言うように、それはhelpful.AnyのブログやもWPVMのMVVMでビューモデルからビューへの通信方法
ビューモデルで何かが発生した場合、特定のコードをビューで実行したいと思います。私はプリズムイベントアグリゲータに見てきましたが、私はエド・プランケットが言うように、それはhelpful.AnyのブログやもWPVMのMVVMでビューモデルからビューへの通信方法
に動作します。このに関して同じコードになりますそうするために、より容易な方法がある場合は、プリズム5と成功を得たhaventはViewのViewModelへの接続方法であるため、ビュー内のDataContextChangedをリッスンする必要があります。ここで
は例です:
public partial class MyView : UserControl
{
public MyView()
{
DataContextChanged += MyView_DataContextChanged;
}
private void MyView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
//new ViewModel has been set.
MyViewModel myViewModel = e.NewValue as MyViewModel;
if (myViewModel != null)
{
//check for property changes
myViewModel.PropertyChanged += MyViewModel_PropertyChanged;
//custom event for specific update
myViewModel.MyCustomEventTriggered += MyViewModel_MyCustomEventTriggered
}
}
private void MyViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
//do your logic
}
private void MyViewModel_MyCustomEventTriggered(object sender, MyCustomEventArgs e)
{
//do your logic
}
}
見て、そのエントリ持ってください。http://stackoverflow.com/questions/15439841/mvvm-in-wpf-how-to-alert-viewmodel-of-changesを-in-model-or-should-i?rq = 1 – Ugur
INotifyPropertyChangedは行く方法です。または定期的なイベント。ビューで、DataContextChangedハンドラを追加します。 datacontextを取得したら、viewmodel型にキャストし、PropertyChangedなどのハンドラを追加します。 –