Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用/启用数据窗口按钮_C#_Wpf_Mvvm_Catel - Fatal编程技术网

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
    ,目前我看不出有任何理由实现它。但是你可以把它放在待办事项上。