对不起,标题,我只是不知道如何用一句话来解释。
所以这是我的目标:我需要在ViewModel中有一个 bool 值,以定义控件(边框)的可见性。
我知道我可以使用BooleanToVisibilityConverter来实现这一点,但是还有更多的事情要做。如果控件不可见,我希望在UI上显示一个按钮。按下该按钮之后,我希望ViewModel中的 bool 值为TRUE,然后希望控件可见并且刚刚按下的按钮可以折叠。一旦该控件可见,我希望该最近可见的控件中的按钮使该控件折叠起来,然后使原始按钮可见。
基本上,有两个按钮:一个使可见(然后折叠自身),另一个是使容器折叠,然后使第一个按钮可见。
我正在尝试使用MVVM完成所有这些操作,因此,如果可以避免在View中隐藏代码,那将是理想的选择!
最佳答案
由于您在 View 模型上使用ICommands,因此应该可以...假设您的命令是“ShowBorderCommand”和“HideBorderCommand”,并且 View 模型上的属性是“ShowBorder”
<ConverterNamespace:BooleanToVisibilityConverter x:Key="BoolToVis"/>
<ConverterNamespace:ReverseBooleanToVisibilityConverter x:Key="BoolToCollapse"/>
<Border Visibility="{Binding ShowBorder, Converter={StaticResource BoolToVis}}">
<Button Command="{Binding HideBorderCommand}"/>
</Border>
<Button Command="{Binding ShowBorderCommand}" Visbility="{Binding ShowBorder, Converter={StaticResource BoolToCollapse}}"/>
关于wpf - 有两个控件设置另一个控件的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401900/