绑定属性上的 DataTrigger

Posted

技术标签:

【中文标题】绑定属性上的 DataTrigger【英文标题】:DataTrigger on a Property of a Binding 【发布时间】:2013-06-18 07:48:48 【问题描述】:

我在用户控件上有一个带有绑定属性的标签。此绑定的字符串格式属性需要根据绑定到标签内容属性的基础数据的数据类型进行设置。因此,如果该属性绑定到我的视图模型中的日期属性,我想在数据触发器中指定字符串格式。这是我尝试过的,但 StringFormat 未被识别。我错过了什么还是我做错了什么?任何建议将不胜感激。

<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>

【问题讨论】:

【参考方案1】:

为什么不简单地使用转换器?

 <Label Content="Binding Path=myProperty, Converter=StaticResource MyContentConverter">

【讨论】:

这实际上是一个更好的主意,呵呵!为什么我没想到。我会试一试,让你知道。谢谢! 我的转换器的代码如下所示: public object Convert(object value, Type targetType, object parameter, CultureInfoculture) if (value is DateTime) return ((DateTime)value).ToString(" dd/MM/yyyy");返回值; 奇迹般有效!感谢您的帮助!

以上是关于绑定属性上的 DataTrigger的主要内容,如果未能解决你的问题,请参考以下文章

更改 Button.Click 上的 ListBox.ItemsSource 绑定属性?

我无法绑定树视图上的 IsExpanded 属性

绑定到基类型上的阴影属性

如何绑定到不是当前绑定上下文的viewmodel上的属性

如何从 C++ 中删除属性上的 QML 绑定?

组件输入属性上的双向数据绑定