【发布时间】:2013-11-29 12:31:00
【问题描述】:
我有一个视图,我在其中绑定了模型的一些深层属性(使用 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;
}
}
}
请问,有人可以帮我吗?提前致谢。
【问题讨论】:
-
您可以在您的
NewFooModelsetter 中调用NotifyOfPropertyChange(() => CanCreateFooModel)... -
好的,但是我在不同的 ViewModel 中使用了这个 Model,所以我必须在每个 ViewModel 中创建一个 NOFC?
标签: c# wpf mvvm caliburn.micro