2013-06-21 175 views
2

我在usercontrol上使用具有绑定属性的标签。此绑定的字符串格式属性需要根据绑定到标签内容属性的基础数据的数据类型进行设置。因此,如果该属性绑定到我的viewmodel中的日期属性,我想在数据触发器中指定字符串格式。这是我所尝试过的,但StringFormat没有被识别。我错过了什么,或者我做错了吗?任何意见将不胜感激。绑定属性上的DataTrigger

<Label 
    x:Name="myLabel" 
    Content="{Binding Path=myProperty}"> 
<Label.Style> 
    <Style> 
    <Style.Triggers> 
     <DataTrigger 
      Binding="{Binding ElementName=myLabel, Path=Content.Binding}" 
      Value="{x:Type sys:DateTime}"> 
        <Setter 
        Property="StringFormat" 
        Value="dd/MM/yyyy" /> 
    </DataTrigger> 
    </Style.Triggers> 
    </Style> 
</Label.Style> 

回答

2

为什么不干脆用一个转换器?

<Label Content="{Binding Path=myProperty, Converter={StaticResource MyContentConverter}}"> 
+0

这实际上是一个更好的主意,哈哈!为什么我没有想到这一点。我会试一试,让你知道。谢谢!我的转换器 – pjdupreez

+0

代码如下所示: 公共对象转换(对象的值,类型目标类型,目标参数,CultureInfo的文化) \t \t { \t \t \t如果(值DATETIME) \t \t \t \t回报((日期时间)值)的ToString( “DD/MM/YYYY”); \t \t \t \t \t \t返回值; \t \t} 工程就像一个魅力!感谢您的帮助! – pjdupreez