1

現在、テキスト ボックスを作成し、バインドを作成するたびに ValidatesOnExceptions=True、ValidatesOnDataErrors=True、NotifyOnValidationError=True を指定しています。

<TextBox Width="150" Text="{Binding Expander1Name, ElementName=Window, 
         Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, 
         ValidatesOnExceptions=True, ValidatesOnDataErrors=True, 
         NotifyOnValidationError=True}" Background="#FFF5EECC"></TextBox>   

グローバル XAML セッターで ValidatesOnExceptions=True、ValidatesOnDataErrors=True、NotifyOnValidationError=True を設定したいと思います。

ここで誰かが決定的な答えを出すことができますか?

4

2 に答える 2

2

これらのプロパティは、 s 自体のプロパティとして公開されるのではなく、sBinding内のインスタンスに存在するため、説明した方法では不可能です。をターゲットとする を作成することはできません。DependencyObjectDependencyObjectStyleBinding

とはいえ、これを回避するにはいくつかの方法があります。

  1. Binding必要なデフォルトを拡張および設定する独自のクラスを定義します。次に、現在使用しているすべての場所でそのクラスを使用しますBinding
  2. Bindingアタッチされているオブジェクト内のすべての を検索し、必要なデフォルトを設定する、アタッチされた動作を定義します。

2番目のオプションは予期しない結果をもたらす可能性があるため、最初のオプションが望ましいでしょう(デフォルトを使用したくないバインディングがある場合はどうなりますか?)。2 番目のオプションも、それが関連付けられているアイテムのすべての依存関係プロパティを動的に検索する必要があるため、はるかに遅くなります。

于 2012-04-11T16:48:21.980 に答える
1

私は、多分あなたがそこでも見ることができる前に、ほぼ同じ質問をしました:

バインディングのスタイル?

于 2012-04-12T08:57:13.673 に答える