静态资源中的数据触发器

时间:2018-11-21 08:54:50

标签: c# wpf xaml data-binding datatrigger

我想制作一个模板样式,可以将其用作静态资源,如下所示:

<TextBox 
  Style="{StaticResource CollapsingTextBox}"
  Text="{Binding SomeNullableValue}" />

现在,顾名思义,当绑定值为null时,我希望文本框折叠。通常,我会使用数据触发器来执行此操作,例如:

<DataTrigger Binding="{Binding SomeNullableValue}" Value="{x:null}">
    <Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>

但是,如果我将数据触发器移动到可重复使用的模板样式,那么直接绑定到绑定属性(即SomeNullableValue)就不好了。相反,我需要绑定模板用户的绑定(如果这有意义)。

如何实现这种绑定?

1 个答案:

答案 0 :(得分:1)

尝试使用具有Text属性的触发器:

<Trigger Property="Text" Value="">
    <Setter Property="Visibility" Value="Collapsed" />
</Trigger>
<Trigger Property="Text" Value="{x:null}">
    <Setter Property="Visibility" Value="Collapsed" />
</Trigger>