我想问为什么deflate _hull
传递相反的值。因为事件名称暗示事件(CommandParameter
和Checked
已被触发,并且Unchecked
的状态应该已更改,但事实并非如此,就好像尚未分配IsChecked一样。这不是一个大问题,因为我一直都可以假设相反的意思,但是一旦我将IsChecked
扩展为包含Triggers
,那么我就无法知道DataTrigger
是否为逆一个或没有!
CommandParameter
我找到了解决该问题的方法,如下所示:
<CheckBox IsChecked="{Binding CheckBoxChecked}">
<i:Interaction.Triggers>
<ia:DataTrigger Binding="{Binding LayoutManager.ShowZeroInv}" Value="Visible">
<i:InvokeCommandAction Command="{Binding SameCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type CheckBox}}, Path=IsChecked}" />
</ia:DataTrigger>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding SameCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type CheckBox}}, Path=IsChecked}" />
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding SameCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type CheckBox}}, Path=IsChecked}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
但是我想知道发生了什么事?是由于事件触发时<CheckBox IsChecked="{Binding CheckBoxChecked}">
<i:Interaction.Triggers>
<ia:DataTrigger Binding="{Binding IsVisible}" Value="Visible">
<i:InvokeCommandAction Command="{Binding SameCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type CheckBox}}, Path=IsChecked}" />
</ia:DataTrigger>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding SameCommand}">
<i:InvokeCommandAction.CommandParameter>
<sys:Boolean>True</sys:Boolean>
</i:InvokeCommandAction.CommandParameter>
</i:InvokeCommandAction>
</i:EventTrigger>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding SameCommand}">
<i:InvokeCommandAction.CommandParameter>
<sys:Boolean>False</sys:Boolean>
</i:InvokeCommandAction.CommandParameter>
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
的状态尚未改变,还是由于其他原因?
答案 0 :(得分:1)
但是我想知道发生了什么事?是由于事件触发时
IsChecked
的状态尚未改变...
不。 IsChecked
的{{1}}属性是在CheckBox
/ Checked
事件触发时设置的,与预期的一样。
...还是因为其他原因?
是的,这是由于在事件引发之前已解决了绑定这一事实。因此,根据Unchecked
当前是否与{{1}互动之前 进行检查,将CommandParameter
设置为true
或false
}}。