我在我的MainWindow中有两个UserControls,一个是一些名称列表,另一个是ListBox,TextBox和Button。问题是当我运行应用程序时,我的主窗口应该只与usercontrol1,当我点击名称usercontrol2应该打开我的mainwindow.How我可以做到这一点,我是新来的,请帮助我WPF MVVM中的UserControl视图
回答
有几种方法,我们可以实现您的要求。然而,他们没有一个与Visibility
有任何关系,所以也许你的标题可以做一个编辑?无论哪种方式,我只是在几个小时前回答了一个类似的问题(总是有一个很好的理由在你问一个问题之前寻找答案),这将回答你的问题。请查看StackOverflow上的WPF MVVM navigate views问题,以获得对您问题的解答。
尽管它可能无法满足您的所有要求,但我相信您可以成功将其应用于您的情况。但是,如果您需要进一步帮助,请留下评论。
Did你*实际上*阅读答案?我没有提到任何'Button'。无论哪种方式,答案都是一样的,只需从数据绑定的'SelectedItem'属性或'SelectionChanged'事件处理程序中调用'ViewModel = new PersonViewModel();'。您可以从任何地方(即在范围内)调用该线路并更新视图。 – Sheridan
你可以隐藏,使控制器之间使用VisiblityProperty
绑定属性VisiblityProperty和切换取决于你的逻辑
改变其值参考以下链接
Binding Visibility Converter in WPF C#
http://jeffhandley.com/archive/2008/10/27/binding-converters---visibilityconverter.aspx
虽然在这个问题的标题中“可见性”这个词是*,但我认为它略微领先。如果使用“可见性”属性来实现用户的需求,那么这将不会很好,因为这意味着即使不可见,所有视图都会占用资源。 – Sheridan
- 1. SimpleIoc MVVM解析视图(UserControl)
- 2. 如何在MVVM中创建WPF UserControl
- 3. WPF MVVM:从视图模型
- 4. 重用WPF MVVM视图
- 5. WPF MVVM链接视图
- 6. 在MVVM中切换视图wpf
- 7. 在MVVM Light中为WPF布线视图
- 8. 使用MVVM LIGHT(WPF)导航UserControl
- 9. MVVM WPF:从ViewModel获取usercontrol名称
- 10. WPF MVVM视图时的ViewModels性能
- 11. WPF - MVVM命令的子视图模型
- 12. WPF将树视图绑定到UserControl
- 13. 如何在mvvm模式中绑定wpf usercontrol中的属性
- 14. 如何在mvvm-light中关闭UserControl视图?
- 15. 如何使用MVVM Light在ViewModel中获取所有视图(UserControl)?
- 16. DataControl上的UserControl的DataContext而不是WPF/MVVM中的ListBox DataBind
- 17. MVVM和UserControl
- 18. WPF视图 - UserControl路径而不是UserControl内容
- 19. WPF MVVM并将viewmodels传递给视图
- 20. 从Viewmodel WPF MVVM视图重定向
- 21. 视图控件显示/隐藏WPF MVVM
- 22. 将视图注入容器MVVM WPF
- 23. WPF MVVM设计视图模型
- 24. WPF MVVM - 什么是内树型视图
- 25. WPF LocalizationExtensionComboBox locBinding NullReference异常OnPropertyChanged视图(MVVM)
- 26. WPF MVVM多视图问题,使用ListBox.SelectedItem
- 27. WPF使用MVVM模式浏览视图
- 28. 在具有MVVM模式的UserControl WPF中异步加载
- 29. WPF + MVVM - UserControl中的访问对象/属性
- 30. 如何从WPF MVVM中的Usercontrol创建PDF
将usercontrol2的Visibility属性设置为隐藏,然后更改时,想要它再次出现,更多信息http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility.aspx – Alexandre
你可以请张贴您的xaml?你可以这样做:在'userControl1'的点击事件中,你改变'userControl2.Visibility'。我认为它应该工作。 – Alexandre
以及你可以尝试selectedValueChanged事件来做我之前所说的http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.selectedvaluechanged(v=vs.110).aspx – Alexandre