在MVVM场景/节目堆叠面板,我想显示/隐藏基于一个超链接点击或点击图片的用户控件。这在XAML中如何实现?如何隐藏在WPF MVVM
5
A
回答
4
绑定Visibility
属性视图模型的一个布尔值属性,使用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");
}
}
0
说你有你的视图模型,确定是否将一个布尔属性显示控制
public bool DisplayControl { get; set; }
<StackPanel Visibility="{Binding DisplayControl, Converter={StaticResource visibilityConverter}}"/>
+0
我没有提到'INotifyPropertyChanged',你就会有在'二传手使用DisplayProperty'以便每次数据更改时更新视图。 –
13
使用一个切换按钮,使用BooleanToVisibilityConverter
绑定您UserControl
的可见性:
定义的资源0使用BooleanToVisibiltyConverter
<Window.Resources>
<BooleanToVisibilityConverter x:Key="visibilityConverter" />
</Window.Resources>
而且你的控件绑定您StackPanel
的visibiilty :
<BooleanToVisibilityConverter x:Key="BoolToVisibility" />
的切换按钮:
<ToggleButton x:Name="VisibilityToggle>
<Image Source="..." />
</ToggleButton>
用户控制:
<MyControl Visibility="{Binding IsChecked, ElementName=VisibilityToggle, Converter={StaticResource BoolToVisibility}}" />
相关问题
- 1. 视图控件显示/隐藏WPF MVVM
- 2. WPF MVVM +用户控件代码隐藏
- 3. WPF/MVVM:重构代码隐藏,使其准备好MVVM结合
- 4. 如何隐藏WPF AutoCompleteBox下拉框
- 5. 如何在WPF Ribbon控件中禁用隐藏/取消隐藏
- 6. 如何隐藏在通过C#WPF
- 7. 使用MVVM隐藏Silverlight DataGrid
- 8. WPF:隐藏contextMenu当空
- 9. 如何隐藏WPF网格溢出(像CSS溢出:隐藏)
- 10. 无法使用MVVM隐藏WPF中的控件
- 11. 从WPF MVVM项目中删除代码隐藏文件
- 12. 隐藏在WPF默认resizegrip
- 13. Datagrid行隐藏,在wpf vb.net
- 14. 如何隐藏wpf datagrid行选择器
- 15. 如何隐藏WPF中的控件?
- 16. 如何隐藏WPF DocumentViewer的菜单栏?
- 17. WPF的NotifyIcon - 隐藏
- 18. WPF代码隐藏
- 19. WPF隐藏与CollectionViewSource
- 20. 在MVVM在WPF
- 21. 如何在隐藏“dd”后隐藏“dd”
- 22. 如何隐藏在
- 23. 在WPF MVVM
- 24. WPF:在MVVM
- 25. WPF MVVM - 如何安排ViewModels
- 26. WPF - 如何通过MVVM
- 27. 如何获取项目来源XamComboEditor的代码隐藏在Wpf中
- 28. MVVM:将代码隐藏转换为XAML
- 29. WPF代码隐藏等效
- 30. WPF隐藏网格列
[数据绑定](http://msdn.microsoft.com/en-us/library/ms750612.aspx)的['能见度'](http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility(v = VS.95)的.aspx)使用'BoolToVisibiltyConverter' –
没有财产上的VM布尔属性在我看来,需要在ViewModel上定义一个属性。请参阅我的答案,了解如何在XAML中执行此操作。 – Marc
@马克,我看不出你的链接 – SNS