2

MVVMIDataErrorInfoでは検証に使用されます。これでは、インデクサ チェック値が取得できません。そして、それを呼び出した後、値をチェックする方法を取得できません。コードはこちらです。列名に渡される値は何ですか。

public string this[string columnName]
{
    get { return GetValidationError(columnName); }
}

なぜwpfの検証にインデクサーを使用するのですか.誰でもそれについて言うことができます.

4

1 に答える 1

2

IDataErrorInfoインターフェイスを使用する場合は、インターフェイスを実装するクラスを検証します。

プロパティNameがあり、検証をアクティブにしてプロパティを変更すると、文字列columnName="Name"でインデクサーが呼び出されます。これで、ifステートメントで「名前」の検証を処理できます

if(columnName  == "Name")
    // do Name validation

//編集

バインドによってプロパティを変更すると、wpfで検証が実行されます。バインディングを次のように装飾する必要があります。

Text="{Binding UpdateSourceTrigger=LostFocus, Path=FirstName, ValidatesOnDataErrors=true, NotifyOnValidationError=true}"

これは、WPFデータバインディングとエラーテンプレートを使用したIDataErrorInfo実装のわかりやすく簡単な説明です。

WPF:IDataErrorInfoで検証が簡単になりました

于 2012-05-21T08:42:31.943 に答える