我在我的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