阅读MSDN关于DataTrigger的内容时,它说:
表示当绑定的数据满足指定条件时应用属性值或执行操作的触发器。
这意味着
当触发器为真时,将把值更改为所需值。
但是,这是否可以推断出来?
当不再为真时,它会将值返回到先前的值。
我如何得出这个结论的
我做了这个
<Style x:Key="fd" TargetType="SomeControl">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Button Content="Foo" x:Name="mybutton">
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=FooProperty}"
Value="Collapsed">
<Setter Property="IsEnabled" Value="False" TargetName="mybutton"/>
<Setter Property="Opacity" Value="0.5" TargetName="mybutton"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
当
FooProperty
变为折叠状态时,它会将mybutton的IsEnabled
更改为False
,Opacity
更改为0.5
。现在,当
FooProperty
变为可见状态时,它会将mybutton的IsEnabled
更改为True
,Opacity
更改为1
,即使我没有编写任何触发器来恢复先前的值。这是
DataTrigger
的内置功能吗?可以在不再为真时恢复到先前的值吗?如果是,是否有任何Microsoft/MSDN文档来证明这一点?