我正在尝试将 XAML StringFormat 应用于TimeSpan
属性。
注意此问题适用于Windows Phone。
对于 WPF,正确的语法是:
Text="{Binding ElapsedTime,StringFormat={}{0:m\\:ss}}"
对于 Silverlight,它需要单引号:
Text="{Binding ElapsedTime,StringFormat='{}{0:m\\:ss}'}"
但是对于 Windows Phone,无论我尝试了什么,输出始终是完整的“00:00:00.0000000”。
StringFormat='m\\:ss'
StringFormat='{}{0:m\\:ss}'
StringFormat='m\:ss'
StringFormat=m\\:ss
我是否以某种方式错过了正确的排列,或者这在 Windows Phone 中出于某种原因是不可能的?
更新
我使用了一种解决方法(下面的答案),但如果有人知道的话,我仍然想解释一下这种奇怪之处。(我说“怪异”是因为StringFormat
与DateTime
属性完美结合,只是不适用于属性TimeSpan
。)
更新#2
2010 年的一个非常相似的问题。也许这只是 .Net 的旧版本和/或“紧凑”版本的问题。或者这个答案( StringFormat=\{0:h\\:mm\}
) 有用吗?