1

IDataErrorInfoを実装するオブジェクトのコレクションにバインドされたItemSourceを持つリストボックスがあります。リストボックス内のアイテムを個別に検証するために、バインディンググループを使用します。

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

これはうまく機能していますが、検証は1回しか行われておらず、再度行う方法がわかりません。ItemsSourceバインディングを更新しても、予想どおりに検証が更新されません。

4

1 に答える 1

2

私は今日、バインディンググループで遊んでいて、同じ質問がありましたが、接続データグリッドでこのルールを使用しただけでした。UpdateSourcesなどのメソッドの1つを使用して、グループ検証を実行する必要があります。

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

PS-私はStackPanelを使用していたので、リストボックスに関連するイベントを試すことができます。

于 2012-11-22T20:43:50.293 に答える