IDataErrorInfo を実装するオブジェクトの ObservableCollection を持つ ViewModel があります。
public class ActivityCodesEditorViewModel : BaseViewModel
{
public ObservableCollection<UIActivityCode> ActivityCodes
}
public class UIActivityCode : IActivityCode, INotifyPropertyChanged, IDataErrorInfo
このコレクションはデータ グリッド (インフラジスティックスの XamDataGrid ですが、関係ないと思います) にバインドされています。検証はセル レベルでうまく機能し、どのオブジェクトに検証エラーがあるかを示します。
ここで、エラーをインラインで表示するだけでなく、asp.net にある ValidationSummary に似たものも提供したいと考えています。オンラインでソリューションを見たことがありますが、そのすべてがプライベート ハッシュセットを使用してエラーを追跡しています。私はそのオーバーヘッドを望んでおらず、Validation.Errors を介してフレームワークによって既に処理されていると思います。
私のUIは次のようになります。
<ListBox ItemSource="{Binding ElementName=ActivityCodesGrid, Path=(Validation.Errors)}" />
<igDP:XamDataGrid Name="ActivityCodesGrid" DataSource="{Binding ActivityCodes}" />
Validation.Errors プロパティをそれらを表示するものにバインドしたいのですが、それらに正しくバインドするか、更新されたバージョンを取得するのに問題があります。 このように Validation.Errors に直接バインドすることは可能ですか?
編集1
ブラスト!この質問を投稿したら、次のことがわかりました。
単一の WPF コントロールですべての Validation.Errors を一覧表示しますか?
Validation.Errors が配列であることで誤解を招くようです。2番目の回答に記載されている解決策を試します。リンクされた回答が提供するものとは異なるものがある場合は、共有してください!