2013-10-29 54 views
0

我在我的MainWindow中有两个UserControls,一个是一些名称列表,另一个是ListBox,TextBox和Button。问题是当我运行应用程序时,我的主窗口应该只与usercontrol1,当我点击名称usercontrol2应该打开我的mainwindow.How我可以做到这一点,我是新来的,请帮助我WPF MVVM中的UserControl视图

+0

将usercontrol2的Visibility属性设置为隐藏,然后更改时,想要它再次出现,更多信息http://msdn.microsoft.com/en-us/library/system.windows.uielement.visibility.aspx – Alexandre

+0

你可以请张贴您的xaml?你可以这样做:在'userControl1'的点击事件中,你改变'userControl2.Visibility'。我认为它应该工作。 – Alexandre

+0

以及你可以尝试selectedValueChanged事件来做我之前所说的http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.selectedvaluechanged(v=vs.110).aspx – Alexandre

回答

0

有几种方法,我们可以实现您的要求。然而,他们没有一个与Visibility有任何关系,所以也许你的标题可以做一个编辑?无论哪种方式,我只是在几个小时前回答了一个类似的问题(总是有一个很好的理由在你问一个问题之前寻找答案),这将回答你的问题。请查看StackOverflow上的WPF MVVM navigate views问题,以获得对您问题的解答。

尽管它可能无法满足您的所有要求,但我相信您可以成功将其应用于您的情况。但是,如果您需要进一步帮助,请留下评论。

+0

Did你*实际上*阅读答案?我没有提到任何'Button'。无论哪种方式,答案都是一样的,只需从数据绑定的'SelectedItem'属性或'SelectionChanged'事件处理程序中调用'ViewModel = new PersonViewModel();'。您可以从任何地方(即在范围内)调用该线路并更新视图。 – Sheridan

0

你可以隐藏,使控制器之间使用VisiblityProperty

绑定属性VisiblityProperty和切换取决于你的逻辑

改变其值参考以下链接

Binding Visibility Converter in WPF C#

http://jeffhandley.com/archive/2008/10/27/binding-converters---visibilityconverter.aspx

+0

虽然在这个问题的标题中“可见性”这个词是*,但我认为它略微领先。如果使用“可见性”属性来实现用户的需求,那么这将不会很好,因为这意味着即使不可见,所有视图都会占用资源。 – Sheridan