我正在开发用于数据管理的C#WPF应用程序。我将MVVM模式与Caliburn Micro框架一起使用。
我有一个按钮,只有在名称不为空的特定文本框时才可以按下。
我的问题是,当我在文本框中输入文本时,CanSaveSelection
不会得到通知,因此也不会检查其是否为空。
public class MainWorkspaceViewModel : PropertyChangedBase
{
private Car _myCar;
public Car MyCar
{
get { return _myCar; }
set
{
_myCar = value;
NotifyOfPropertyChange(() => CanSaveSelection);
}
}
public void SaveSelection()
{
//Do something
}
public bool CanSaveSelection
{
get
{
bool result = true;
if (String.IsNullOrWhiteSpace(MyCar.Manufacturer.Name))
{
result = false;
}
return result;
}
}
}
对象:
public class Car : PropertyChangedBase
{
public Manufacturer Manufacturer { get; set; }
}
public class Manufacturer : PropertyChangedBase
{
public String Name { get; set; }
}
是否有一种方法可以使“ NotifyOfPropertyChange”气泡化为对象? 我认为使用Event Aggregator可以做到这一点,但我对此并不了解。
答案 0 :(得分:1)
您可以在视图模型中处理Manufacturer
的{{1}}事件:
PropertyChanged