C# 禁用/启用数据窗口按钮
使用C# 禁用/启用数据窗口按钮,c#,wpf,mvvm,catel,C#,Wpf,Mvvm,Catel,使用DataWindowMode.OkCancelApply从基类继承视图。现在,我尝试禁用OK/Apply(甚至仅应用)按钮,并在某些模型的属性被修改时启用它们 经过调查,我发现ValidateData()override可以满足我的需要。仍然无法确定如何使用Catel从模型中验证未更改的属性。Catel支持不同的验证方法: 在模型上(但随后需要ViewModelToModel或Expose) 属性) 在视图模型上(覆盖ValidateFields和 验证业务规则) 有关Catel中验证的更多
DataWindowMode.OkCancelApply从基类继承视图。现在,我尝试禁用OK/Apply(甚至仅应用)按钮,并在某些模型的属性被修改时启用它们
经过调查,我发现ValidateData()
override可以满足我的需要。仍然无法确定如何使用Catel从模型中验证未更改的属性。Catel支持不同的验证方法:
在模型上(但随后需要ViewModelToModel或Expose)
属性)
在视图模型上(覆盖ValidateFields和
验证业务规则)
有关Catel中验证的更多信息,请参阅以下文档:
谢谢你,杰特!我也检查了那些页面。出于我的目的,需要跟踪模型的IsDirty状态。如果设置为true,则必须启用视图中的应用按钮,否则禁用。啊,我认为没有真正的解决方案。为什么你不能一直启用它呢?我希望我可以,但是根据应用程序的要求有。实现这一点的最简单理论方法是重写ValidateData()
,只返回底层模型的IsDirty
值。实际上这并不容易,因为:1。视图无法访问模型,2)如果我在ServiceLocator
的帮助下获得模型,由于某种原因,它的IsDirty
总是true
,目前我看不出有任何理由实现它。但是你可以把它放在待办事项上。