2016-07-15 11 views
-2

私はTimeSpan型のDependencyPropertyを持つコントロールを持っています。そのプロパティにバインドしようとすると、その値は更新されていません。コントロールのWPFバインディングTwoWayが機能しない、OneWayToSourceが機能しています。どうして?

使用法:

<controls:TimeControl Time={Binding SomeTimeSpanProperty} /> 

私がコントロール内の時間の値を変更し、変更がSomeTimeSpanPropertyに更新されません。ただし、{Binding SomeTimeSpanProperty}{Binding SomeTimeSpanProperty、Mode = OneWayToSource}に変更すると、それが更新されます。

+0

なぜ非常にダウンワードですか?質問に間違いがありますか? – GregaMohorko

答えて

0

解決策が見つかりました。将来これを読んでいる人が何をしたかったのか:

TimeSpanタイプのプロパティのデフォルトバインディングモードがOneWayなので、バインディングのモードをTwoWayに明示的に設定する必要がありました。を作品

<controls:TimeControl Time={Binding SomeTimeSpanProperty,Mode=TwoWay} /> 

そして今、それは:これに

<controls:TimeControl Time={Binding SomeTimeSpanProperty} /> 

:このから

+2

WPFでは、 'Binding.Mode'プロパティのデフォルト値は[BindingMode.Default']です(https://msdn.microsoft.com/en-us/library/system.windows.data.bindingmode(v = vs.110).aspx)。これは面白いかもしれませんが、Binding "*はバインディングターゲットのデフォルトのMode値を使用することを意味します。デフォルト値は各依存プロパティによって異なります。一般に、テキストボックスやチェックボックスなどのユーザー編集可能なコントロールプロパティデフォルトでは双方向バインディングに設定されていますが、ほとんどのプロパティはデフォルトで一方向バインディングに設定されています。* " – Clemens

+0

ありがとう、忘れました。 – GregaMohorko

関連する問題