我有一个View,我绑定了Model的一些深层属性(使用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);
}
}
}
}
从那时起,模型的属性被正确绑定。所以,我需要将更改通知给CanCreateFoo,我不知道如何:
视图模型:
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;
}
}
}
拜托,有人可以帮帮我吗?提前谢谢。
答案 0 :(得分:1)
您可以使用EventAggregator在属性更改时发布消息(以及当前VM的NotifyOfPropertyChange)。 感兴趣的每个模型都可以订阅此消息并进行处理。