如何刷新BindingGroup?

时间:2012-11-21 12:08:14

标签: c# wpf validation listbox

我有一个ListBox,其ItemSource绑定到实现IDataErrorInfo的对象集合。为了使ListBox中的项目单独验证,我使用绑定组。

<ListBox.ItemBindingGroup>
    <BindingGroup>
        <BindingGroup.ValidationRules>
            <DataErrorValidationRule/>
        </BindingGroup.ValidationRules>
    </BindingGroup>
</ListBox.ItemBindingGroup>

这很有效,但验证只发生一次,我无法弄清楚如何让它再次发生。刷新ItemsSource绑定不会导致验证刷新,因为我期望。

1 个答案:

答案 0 :(得分:2)

我今天正在玩绑定组并遇到同样的问题,只是在连接数据网格中使用了这个规则。您必须使用UpdateSources之类的方法激活组验证:

    void StackPanel_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Return)
            (sender as StackPanel).BindingGroup.UpdateSources();
    }

PS - 我使用的是StackPanel,因此您可以尝试与ListBox相关的事件。