在 MVVM 场景中,我想显示/隐藏基于超链接单击或图像单击的用户控件。这如何在 XAML 中实现?
问问题
18046 次
3 回答
19
使用切换按钮并使用以下方式绑定您的可见UserControl
性BooleanToVisibilityConverter
:
定义资源:
<BooleanToVisibilityConverter x:Key="BoolToVisibility" />
切换按钮:
<ToggleButton x:Name="VisibilityToggle>
<Image Source="..." />
</ToggleButton>
用户控制:
<MyControl Visibility="{Binding IsChecked, ElementName=VisibilityToggle, Converter={StaticResource BoolToVisibility}}" />
于 2013-10-14T09:33:10.453 回答
5
将属性绑定Visibility
到 ViewModel 的 bool 属性,使用BooleanToVisibilityConverter
<Window.Resources>
<BooleanToVisibilityConverter x:Key="visibilityConverter" />
</Window.Resources>
...
<MyUserControl Visibility="{Binding IsMyUserControlVisible, Converter={StaticResource visibilityConverter}}" />
视图模型:
private bool _isMyUserControlVisible;
public bool IsMyUserControlVisible
{
get { return _isMyUserControlVisible; }
set
{
_isMyUserControlVisible = value;
OnPropertyChanged("IsMyUserControlVisible");
}
}
于 2013-10-14T09:30:10.133 回答
1
假设您的 ViewModel 中有一个布尔属性,用于确定是否显示控件
public bool DisplayControl { get; set; }
StackPanel
使用 a绑定您的可见性BooleanToVisibiltyConverter
<Window.Resources>
<BooleanToVisibilityConverter x:Key="visibilityConverter" />
</Window.Resources>
和你的控制:
<StackPanel Visibility="{Binding DisplayControl, Converter={StaticResource visibilityConverter}}"/>
于 2013-10-14T09:32:14.257 回答