我对约会有约束力:
<TextBlock Text="{Binding Path=EndDateTime, StringFormat=d}"/>
我想要的是当它的值为DateTime.MinValue
(DateTime的默认值)时显示null而不是日期。
这可能没有使用转换器,只是通过某种方式扩展我的绑定的StringFormat
属性?
是否还有其他 XAML 解决方案?
提前谢谢!
答案 0 :(得分:10)
您可以在TextBlock的样式中使用DataTrigger
<TextBlock>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding Path=EndDateTime, StringFormat=d}" />
<Style.Triggers>
<DataTrigger Binding="{Binding EndDateTime}" Value="{x:Static sys:DateTime.MinValue}">
<Setter Property="Text" Value="NULL" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
答案 1 :(得分:0)
在Silverlight 4中没有针对此的XAML解决方案。在Silverlight 5中,您可以使用标记扩展,尽管这仍然是您必须编写的代码。在Silverlight 4中,您也可以使用行为。
我的建议是在ViewModel上公开一个提供null功能的属性。然后你不必使用转换器,虽然你绑定的属性可以按你的意愿工作。