2012-12-21 9 views
10

WPF 4.0 DataGridにバグがあるようです。WPF Datagrid行の検証

私はオブジェクトにIDataErrorInfoを実装しており、データグリッドがバインドするのはObservableCollectionです。私はValidatesOnDataErrors=Trueを列に設定していますが、行には何も設定していません。私は持っていますUpdateSourceTrigger="PropertyChanged"

セルレベルで検証は完全にセルで動作します。ただし、無効なセルを残して他のセルに移動し、無効なセルに戻って有効なデータを入力すると、セルは有効になりますが、有効である必要がある場合は無効なままになります。一般的なプロパティの検証で

+0

私はまったく同じ問題を抱えています! – Reilly

+0

"ただし、無効なセルを残して、他のセルに移動し、無効なセルに戻って有効なデータを入力すると、セルは有効になりますが、有効でなければならない行は無効のままです。まったく同じ問題。 – SKINDER

+1

ツリーの人、同じwpfの問題と誰もまだ投稿されていないコードです。それはとにかく映画の悪いタイトルです。 :D誰かがコードやxamlを投稿すると思っていますか? –

答えて

2

、ソースが更新される一度それが検証されますが、RowValidationの場合、あなたはRowValidationを実行するためにRowValidationRuleを指定する必要があります。

<DataGrid.RowValidationRules> 
     <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" /> 
</DataGrid.RowValidationRules> 

DataGridはまた、あなたがカスタム形式でエラーを表示するようにRowValidationErrorTemplateを提供することができます行について検証します。

0

同じ問題がありました。私のための修正は、ValidatesOnTargetUpdated="True"を検証ルールに設定していました。これは、コントロールが更新されるたびに別の検証を強制するようです。