Wpf DataTrigger.Existations未为绑定值“null”触发
我有以下数据触发器,但exitactions没有启动。输入操作工作查找。我还尝试将绑定转换为布尔值,看看它是否与null有关,但这也没有帮助。我做错了什么?为什么我的退出没有在这里启动Wpf DataTrigger.Existations未为绑定值“null”触发,wpf,xaml,storyboard,datatrigger,Wpf,Xaml,Storyboard,Datatrigger,我有以下数据触发器,但exitactions没有启动。输入操作工作查找。我还尝试将绑定转换为布尔值,看看它是否与null有关,但这也没有帮助。我做错了什么?为什么我的退出没有在这里启动 <DataTrigger Binding="{Binding }" Value="{x:Null}"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard>
<DataTrigger Binding="{Binding }" Value="{x:Null}">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To=".5" From="0" Duration="0:0:1"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" From=".5" Duration="0:0:1"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
编辑:这里一定发生了一些奇怪的事情,因为我也尝试过把故事板从等式中去掉,只使用setter-现在什么都没有发生。。。
因此,作为替代,我将发布整个文本块,也许有人可以指出我遗漏了什么
<Grid DataContext="{Binding ElementName=ConfigTree, Path=SelectedItem.Details}">
<TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center" Padding="10" VerticalAlignment="Center" FontWeight="Bold" FontSize="14" Opacity="0">
Select a configuration on the right to modify its selected columns
<TextBlock.Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
<Style.Triggers>
<DataTrigger Binding="{Binding }" Value="{x:Null}">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard Duration="0:0:1">
<DoubleAnimation Storyboard.TargetProperty="Opacity" To=".5" From="0" Duration="0:0:1"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0" From=".5" Duration="0:0:1"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
ConfigTree是一个treeview,SelectedItem.Details是一个实现observablecollection和INotifyPropertyChanged的类。我已经与调试器进行了检查,该绑定正在正确更新,并且正在来回切换到我的实例值和空值。对我来说很好
<CheckBox x:Name="MyCheckBox"
IsThreeState="True"
Content="I am Tristate! Check Me"/>
<TextBox x:Name="MyTextBlock"
Background="Cyan"
Text="1234567890">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=MyCheckBox,
Path=IsChecked}"
Value="{x:Null}">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To=".5" From="0"
Duration="0:0:1">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="0" From="0.5"
Duration="0:0:1">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
顺便说一句,我已经确认绑定确实正在正确更新。正如我所期望的那样,绑定正在来回更改为空值——但没有exitactions:谢谢,至少现在我知道这不是因为对使用exitactions的误解。不过,对我来说,退出行动似乎并不像我预期的那样激发和改变我的不透明性。我已经使用DebugConverter+断点验证了绑定确实正在从null变为实例。当出现null enteraction时,my opacity enter action会触发,但当设置为实例时,exitaction不会触发。这是什么原因造成的?