0

TextBox などの wpf コントロールでは、ValidatesOnDataErrors=true を設定できます。UpdateSourceTrigger のデフォルト値を変更することもできます。挿入操作の場合、テキストボックスの初期値は空であることが多いため、そのコンテンツは無効であると想定され、赤い境界線でレンダリングされます (スタイルとテンプレートでこれをオーバーライドして、必要なものを取得できることを確認してください)。私の望ましい動作は、ユーザーがコンテンツを変更した後、またはデータを保存しようとしたときにのみ、コントロールのコンテンツを検証することです。これを達成する唯一の方法は UpdateSourceTrigger=Explicit を設定することだと私には思えますが、これは純粋な MVVM にはあまり適していません。すでに以下の記事を読んでいますが、もっとシンプルなものを探しています。

http://www.shujaat.net/2011/01/updatesourcetrigger-explicit-for-mvvm.html

ありがとうフィリッポ

4

1 に答える 1

0

DataErrorValidationRule を次のように設定します。

<TextBox>
    <TextBox.Text>
        <Binding Path="PropertyName" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <DataErrorValidationRule ValidatesOnTargetUpdated="False"/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>
于 2012-04-27T17:31:56.997 に答える