【发布时间】:2010-09-28 17:46:48
【问题描述】:
我知道 WPF 3.5 SP1 在绑定中支持 StringFormat,但 Silverlight 可以这样做吗?我认为它可以,但该死的,如果我能让它工作!
这是我的 XAML 的 sn-p:
<TextBlock Text="{Binding StartTime, StringFormat=t}" />
它编译正常,但是当它到达浏览器时出现运行时错误...
【问题讨论】:
我知道 WPF 3.5 SP1 在绑定中支持 StringFormat,但 Silverlight 可以这样做吗?我认为它可以,但该死的,如果我能让它工作!
这是我的 XAML 的 sn-p:
<TextBlock Text="{Binding StartTime, StringFormat=t}" />
它编译正常,但是当它到达浏览器时出现运行时错误...
【问题讨论】:
Silverlight 3 及以下版本不支持,但您可以使用 Value Converter 并在绑定中指定 ConverterParamenter。您必须通过从 IValueConverter 派生一个类来创建自己的值转换器,就像我在 here 中展示的那样。
Silverlight 4 及更高版本具有与 WPF 相同的 StringFormat 绑定属性。
【讨论】:
我不知道是哪个版本的 Silverlight 引入了它,但你现在可以了。我正在使用 Silverlight 4 Beta。
<data:DataGridTextColumn Header="Date"
Binding="{Binding CreateDt, StringFormat=\{0:d\}}" />
http://blog.davemdavis.net/2009/12/silverlight-4-data-binding-string.html
这里有关于Formatting Types 的信息,还有更多关于DateTime 的信息。
这里是Silverlight Binding 的完整文档。
【讨论】:
Simon 提到的字符串格式在 Silverlight 4 中。Blend 甚至支持设置格式。
【讨论】: