パラメータ | 詳細 |
---|---|
パス | バインドするパスを指定します。指定されていない場合は、DataContext自体にバインドされます。 |
UpdateSourceTrigger | バインド元の値が更新される時期を指定します。デフォルトはLostFocus です。最もよく使用される値はPropertyChanged です。 |
モード | 通常OneWay またはTwoWay 。バインディングによって指定されていない場合は、バインディングターゲットがTwoWay ことを要求しない限り、デフォルトでOneWay になりTwoWay 。 TwoWay を使用して読み取り専用プロパティにバインドするときにエラーが発生します。たとえば、読み取り専用文字列プロパティをTextBox.Text にバインドするときにOneWay 明示的に設定する必要があります。 |
ソース | 現在のDataContextの代わりにStaticResource をバインディングソースとして使用できるようにします。 |
RelativeSource | 現在のDataContextではなく、バインディングソースとして別のXAML要素を使用できます。 |
ElementName | 現在のDataContextの代わりに名前付きXAML要素をバインディングソースとして使用できるようにします。 |
FallbackValue | バインディングが失敗した場合、この値はバインディングターゲットに提供されます。 |
TargetNullValue | バインディング・ソース値がnull 場合、この値はバインディング・ターゲットに提供されます。 |
コンバータ | バインディングの値を変換するために使用するコンバータStaticResource を指定します。たとえば、ブール値をVisibility 列挙型アイテムに変換します。 |
ConverterParameter | コンバータに提供されるオプションのパラメータを指定します。この値は静的でなければならず、バインドすることはできません。 |
StringFormat | バインドされた値を表示するときに使用する書式文字列を指定します。 |
ディレイ | (WPF 4.5+)バインディングがViewModel 内のBindingSource を更新する遅延をmilliseconds で指定しmilliseconds 。これをMode=TwoWay にするには、 Mode=TwoWay およびUpdateSourceTrigger=PropertyChanged を使用する必要があります。 |
既定では、WPFはコントロールがフォーカスを失ったときにバインディングソースを更新します。ただし、フォーカスを取得できるコントロールが1つしかない場合(例でよく見られるようなもの)、アップデートを動作させるにはUpdateSourceTrigger=PropertyChanged
を指定する必要があります。
すべてのキーストロークでバインディングソースを更新するのはコストがかかり、ライブデータの検証が望ましくない場合を除き、多くの双方向バインディングでPropertyChanged
をトリガーとして使用したい場合があります。
LostFocus
を使用すると残念なことに副作用があります:Enterを押してIsDefault
マークされたボタンを使用してフォームを送信しても、バインディングをバックアップするプロパティは更新されず、変更を効果的に元に戻します。幸いにも、 いくつかの回避策が存在します。
また、UWPとは異なり、WPF(4.5以降)にはバインディングにDelay
プロパティがあり、一部のTextBox
検証のように、ローカルのみまたは単純なマイナーインテリジェンス設定を持つバインディングには十分であることに注意してください。