1

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

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

这很好用,但是验证只发生一次,我不知道如何让它再次发生。刷新 ItemsSource 绑定不会像我期望的那样导致刷新验证。

4

1 回答 1

2

我今天在玩绑定组并且有同样的问题,只是在连接数据网格中使用了这个规则。您必须使用其中一种方法(如 UpdateSources)来触发组验证:

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

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

于 2012-11-22T20:43:50.293 回答