添加Bindinggroup NotifyOnValidationError后,WPF复选框绑定不起作用

时间:2015-07-24 13:04:16

标签: wpf mvvm binding

我有一个使用MVVM的对话框实现,它可以正常使用绑定等。所以在ViewModel中更新复选框。

但是,我现在已经使用WPF Binding.ValidationRules实施了验证,并在对话框中向BindingGroup添加了stackpanel

<StackPanel.BindingGroup>
  <BindingGroup NotifyOnValidationError="True">
  </BindingGroup>
</StackPanel.BindingGroup>

所以我可以捕获所有验证错误。但添加BindingGroup也意味着我对ViewModel的绑定不再适用于复选框。 任何人都清楚为什么复选框突然不起作用,但我的文本框仍然有效?

2 个答案:

答案 0 :(得分:1)

您需要致电CommitEdit

上的BindingGroup
if (stackPanel1.BindingGroup.CommitEdit())
{
    stackPanel1.BindingGroup.BeginEdit();
}

也许,Button上的某个UserControl在点击事件处理程序或Checked的{​​{1}}事件处理程序中执行此操作?

答案 1 :(得分:1)

如果您正在寻找MVVM验证,请继续使用INotifyDataErrorInfo。

最佳实践是实现INotifyDataErrorInfo接口(如果您使用的是.NET 4.5)或IDataErrorInfo接口。 Please refer to the blog post about data validation in WPF for more information and code samples: