单击其他按钮后隐藏按钮可见性

时间:2018-07-26 17:41:00

标签: c# wpf xaml mvvm

我试图通过单击另一个按钮将我按钮上的“可见性”属性设置为“隐藏”。该代码效果很好:

<Button x:Name="Button">             
    <Button.Style>
        <Style TargetType="Button" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=HideBar, Path=IsPressed}"
                             Value="True">
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

就像您在上方可以看到的那样,绑定的IsPressed属性中的Path可以正常工作,但是只有当我按下鼠标按钮时,按钮才会隐藏。单击Binding ElementName=HideBar中提到的“ Hidebar”按钮后,如何使按钮的可见性永久设置为“隐藏”?我想使用MVVM,但在我的opinien中,DataTriggers对于视图的编码更简单。

1 个答案:

答案 0 :(得分:0)

好吧,事实证明您无需将复选框样式更改为基于按钮,因为WPF中有一个切换按钮:

<ToggleButton x:Name="HideBar"  Content="Click"/>
<Button x:Name="Button" Content="Testing">
    <Button.Style>
        <Style TargetType="Button" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=HideBar, Path=IsChecked}"
                     Value="True">
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>