C# WPF绑定双向不工作,单向源工作。为什么?
我有一个控件,其DependencyProperty类型为TimeSpan。当我尝试绑定到该属性时,该值不会被更新 控件的使用:C# WPF绑定双向不工作,单向源工作。为什么?,c#,wpf,mvvm,binding,two-way,C#,Wpf,Mvvm,Binding,Two Way,我有一个控件,其DependencyProperty类型为TimeSpan。当我尝试绑定到该属性时,该值不会被更新 控件的使用: <controls:TimeControl Time={Binding SomeTimeSpanProperty} /> 当我更改控件中的时间值时,该更改不会在SomeTimeSpan属性中更新。但是,如果我将{Binding SomeTimeSpanProperty}更改为{Binding SomeTimeSpanProperty,Mode=One
<controls:TimeControl Time={Binding SomeTimeSpanProperty} />
当我更改控件中的时间值时,该更改不会在SomeTimeSpan属性中更新。但是,如果我将{Binding SomeTimeSpanProperty}更改为{Binding SomeTimeSpanProperty,Mode=OneWayToSource},它将被更新。我找到了解决方案。如果将来有人想知道这是什么: 我必须显式地将绑定模式设置为双向,因为TimeSpan类型属性的默认绑定模式是单向的 由此:
<controls:TimeControl Time={Binding SomeTimeSpanProperty} />
为此:
<controls:TimeControl Time={Binding SomeTimeSpanProperty,Mode=TwoWay} />
现在它开始工作了 在WPF中,
Binding.Mode
属性的默认值为。这听起来很有趣,但这意味着绑定“使用绑定目标的默认模式值。每个依赖项属性的默认值都不同。通常,用户可编辑控件属性(如文本框和复选框的属性)默认为双向绑定,而大多数其他属性默认为单向绑定。”谢谢,我忘了。为什么有这么多的便服?这个问题到底出了什么问题?