私は、ExceptionValidationRuleをWPFのフォーム上の多くのテキストボックスに適用する必要性を克服しました。私は、マークアップでこれを行うことができますし、私は望ましい結果を得る(無効な値が入力されたときにテキストボックスが赤いアウトラインを取得します)が、私はマークアップでルールを供給する場合にのみ:WPF/XAML:コードとマークアップで適用するとExceptionValidationRuleが異なりますか?
<TextBox x:Name="Name" Width="150" >
<TextBox.Text>
<Binding Path="Name" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
しかし、私は使用して値を適用するとコード:
Name.GetBindingExpression(TextBox.TextProperty).ParentBinding.ValidationRules.Add(new ExceptionValidationRule());
希望の結果が得られません。このコードは、InitalizeComponent()呼び出しの後でuserControlのコンストラクターに適用されます。ユーザーコントロールには、子コントロールとしてテキストボックス "名前"があります。
2つの検証ルールがValidationRulesコレクションに追加されていますが、コードバージョンのみを使用しているときには、赤いアウトラインの結果が得られません無効な値が入力されたときのテキストボックス
私はWPFの基本的なルールを誤解していますか?
または、スタイルを使用してこの検証ルールを適用する方法はありますか?私はあなたに真実を伝えたいと思う。
おかげで、 M
を追加!それは魅力のように働いた。これでショートカットバインディング( "{Binding SomeProperty}")を使用することはできません! –
ありがとうございました! – Frinavale