我在MVVM模型中有一个WPF页面(作为我的视图)。 View是一个包含许多文本框的输入表单。我有一个自定义ValidationRule,用于验证每个文本框并相应地显示工具提示警告。但是,我只想要"提交"所有验证器通过时启用按钮。现在,我的#34;承诺"按钮的IsEnabled根据其他条件绑定到DataContext。我如何添加"只有在所有验证器通过时才会启用"当我的IsEnabled已经这样绑定了吗?
IsEnabled="{Binding IsDataLoaded}"
答案 0 :(得分:5)
假设您将Button绑定到命令make the Command implement CanExecute,因此只有在验证规则验证时它才会返回true。
答案 1 :(得分:4)
您的提交按钮应绑定到RelayCommand
中的ViewModel
,并且只有在CanExecute()
和this.IsDataLoaded
<时才设置this.IsValid
为真/ p>
CommitCommand = new RelayCommand(
param => SaveChanges()
param => this.IsDataLoaded && this.IsValid
);
为了验证ViewModel是否有效,我建议使用IDataErrorInfo
答案 2 :(得分:0)
您可以将MultiBinding与您想要的转换器一起使用