【发布时间】:2014-07-04 08:42:30
【问题描述】:
我想将 Slider 的 Value 绑定到 Label 的 Content。滑块的值设置时间跨度。滑块的值是以分钟为单位的时间跨度(值 5 = 5 分钟)。
这是我的标签 XAML:
<Label
Content="{Binding Value, ElementName=sld_Timespan}"
ContentStringFormat="{}{0:HH:mm}"
/>
我可以绑定它们。值是正确的。但是格式不对。
对于ContentStringFormat,我尝试了不同的设置,例如在this (TextBlock in Silverlight) 或this (TextBlock Multibinding) 站点上。我还使用了数据绑定对话框并将 StringFormat 设置为 {0:G}(您可以从 ComboBox 中选择)或其他设置。
我只得到一个“格式化”为双精度值的值,例如“1”或“13.423523423”。
我也尝试过 TextBlock。同样的问题。
我的 XAML 代码有什么问题?
【问题讨论】:
-
您可能需要一个值转换器。收到的错误是什么?
-
@Samuel 我没有收到错误消息。我检查了一下:我可以输入所有内容,我没有收到任何错误。似乎 Visual Studio 隐藏了格式错误。
-
你检查了Visual Studio的输出选项卡吗?它可能包含一些关于绑定问题等的信息。
-
@fedab
Value属于Slider的double类型。将Label.Content绑定到TimeSpan属性 -
正如 dkozl 所说,
Value属性是 double 类型,因此不会被 ContentStringFormat 格式化为 TimeSpan。将Content绑定到 TimeSpan 类型的视图模型属性,或使用绑定转换器。
标签: c# wpf xaml data-binding