我有一个ListBox,其ItemSource绑定到实现IDataErrorInfo的对象集合。为了使ListBox中的项目单独验证,我使用绑定组。
<ListBox.ItemBindingGroup>
<BindingGroup>
<BindingGroup.ValidationRules>
<DataErrorValidationRule/>
</BindingGroup.ValidationRules>
</BindingGroup>
</ListBox.ItemBindingGroup>
这很有效,但验证只发生一次,我无法弄清楚如何让它再次发生。刷新ItemsSource绑定不会导致验证刷新,因为我期望。
答案 0 :(得分:2)
我今天正在玩绑定组并遇到同样的问题,只是在连接数据网格中使用了这个规则。您必须使用UpdateSources之类的方法激活组验证:
void StackPanel_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
(sender as StackPanel).BindingGroup.UpdateSources();
}
PS - 我使用的是StackPanel,因此您可以尝试与ListBox相关的事件。