我正在尝试修改ToggleButton
命令,因为它改变了IsChecked
属性。我的XAML看起来像这样:
<ToggleButton Content="Profile" Command="{Binding Path=ShowProfileMappingCommand}" CommandParameter="{Binding Path=ProfileMappingParameter}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Command" Value="{Binding Path=ShowProfileMappingCommand}" />
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Command" Value="{Binding Path=HideProfileMappingCommand}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
不幸的是,这似乎不起作用。我的Commands
永远不会被召唤。任何想法为什么会出现这种情况?
答案 0 :(得分:0)
IMO我同意HighCore的看法,这似乎过于复杂。但是,如果必须像你拥有它一样(我猜可以这样做)那么,只需猜一猜,尝试相对源绑定如:
Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=DataContext.ShowProfileMappingCommand}"
Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=DataContext.HideProfileMappingCommand}"
如果此xaml位于用户控件或页面中,则必须将ancestorType更改为您在此处使用的控件类型。这可能有所帮助,也可能没有帮助。
设置内联:Command =“{Binding Path = ShowProfileMappingCommand}”可能会在使用数据触发器的同时导致问题。