2012-04-11 16 views
1

現在、私は、テキストボックスを作成し、ValidatesOnExceptionsを指定しています= Trueの場合、ValidatesOnDataErrors =真、NotifyOnValidationError =私はバインディングを作成するたびに真:すべてのテキストボックスでValidatesOnExceptions、ValidatesOnDataErrorsおよびNotifyOnValidationErrorを自動的に設定する方法は?

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

私は真の真ValidatesOnExceptions =、ValidatesOnDataErrors =、NotifyOnValidationError設定したいです=グローバルXAMLセッターではTrueです。

ここに誰でも、できるかどうかにかかわらず、決定的な回答をすることはできますか?

答えて

2

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

前記、あなたがこの問題を回避できたいくつかの方法があります。

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

第二は予期せぬ結果をもたらす可能性があるので、最初のオプションは、(があるかどうあなたははそれがデフォルトに取りたくないどこ結合何?)、私には望ましいだろう。 2番目のオプションは、それが接続されているアイテムのすべての依存関係プロパティを動的に検索する必要があるため、はるかに遅くなります。

1

は、多分あなたはそこにも見ることができ前に、私はほとんど同じ質問いくつかの時間を尋ねた:

Style For Bindings?

+0

ええ、私は答えを見ました。問題は私がBlendでデザインをするのが好きで、そこにデフォルトのバインディングクラスを変更する方法がなく、毎回ProperBindingにBindingを変更する必要がある場合、私はプロパティの割り当てをコピーして貼り付けるかもしれないということです。 –

+0

@Arsen Thenあなたはそれを避けることはできないと思う。ところで、私はコピー貼り付けが好きではありません。私は何度も使用されているものを変更する場所を1つ持つことを好む。もちろん、それはあなたに最も適したもののあなたの選択です。 – Dummy01

+0

自分自身が好きではありません)。しかし、提案をありがとう。彼らが次のXAMLバージョンですぐにそれを得ることを望みます –

関連する問題