【发布时间】:2012-05-22 06:54:45
【问题描述】:
在我当前的项目中,我试图显示一个具有 TimeSpan 绑定的标签。 其实 xaml 看起来很简单:
<Label Content="{Binding ElementName=Root, Path=DataSource.TimeTotal, StringFormat={}{0:hh\:mm}}"/>
这正是this question 中显示的内容。但它不起作用,它总是显示完整的时间,而不仅仅是小时+分钟。
我测试了很多解决方案,但都没有奏效。
【问题讨论】:
-
您使用的是什么版本的 .NET? TimeSpan 仅在 .NET 4 中获得格式字符串。
-
@Asif 已经测试过了,还是不行。
-
@JonSkeet .NET 4.0,非客户端配置文件。这就是它不起作用的地方,这让我现在很生气。 :-/
-
也许只是尝试使用
TextBox而不是Label并绑定Text而不是Content。您可以在此处找到绑定示例:stackoverflow.com/questions/4563081/…。让我知道它是否适合您。 -
它适用于TextBlock,它是Label的轻量级等价物。每当您绑定到使用
ContentPresenter显示数据的控件中的依赖属性时,它似乎会吃掉您提供的StringFormat。 (在Label、Button等)。希望有人能告诉我们原因!您可以将TextBlock嵌套在Label中,或者只使用TextBlock(除非您需要访问文本,否则通常是更好的选择)。
标签: c# wpf xaml data-binding