![](/img/trans.png)
[英]Caliburn.micro - notifying a viewmodel on property change in another viewmodel
[英]Caliburn.micro: Deep property change INPC catching in ViewModel
我有一個View,在其中綁定了模型的某些深層屬性(使用Caliburn.Micro的命名約定):
視圖:
<UserControl x:Class="TOP.SomeView"
(...)
<TextBox x:Name="NewFooModel_Foo" .../>
然后,我需要在ViewModel中捕獲該屬性的INPC的觸發:
模型:
public class FooModel{
private string _foo;
(...)
public int Foo {
get { return _foo; }
set {
if (_foo != value) {
_foo = value;
NotifyOfPropertyChange(() => Foo);
}
}
}
}
從這一點來看,模型的屬性已正確綁定。 因此,我需要將該更改通知CanCanFoo,並且我不知道如何:
視圖模型:
public class SomeViewModel{
(...)
public FooModel NewFooModel {
get { return _newFooModel; }
set {
if (_newFooModel != value) {
_newFooModel = value;
NotifyOfPropertyChange(() => Foo);
//HERE I NEED TO NOTIFY TO CANCREATEFOOMODEL THAT A PROPERTY OF THE MODEL IS CHANGED
}
}
}
public bool CanCreateFooModel{
get{
return NewFooModel.Foo != null;
}
}
}
拜托,有人可以幫我嗎? 提前致謝。
當屬性更改時,您可以使用EventAggregator發布消息(對於當前VM,還可以使用NotifyOfPropertyChange)。 每個感興趣的模型都可以訂閱此消息並進行處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.