2013-10-29 120 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