Iam使用MVVM模型,我在WPF主窗口中有三個用戶控件,並且每個用戶控件都將datacontext設置爲xaml中的不同視圖模型。 主窗口還附加到datacontext中的不同viewmodel。主窗口有三個按鈕,應通過命令綁定綁定,我們如何通過xaml將主窗口按鈕綁定到相應的用戶控件視圖模型Icommand?MVVM WPF - Viewmodel命令綁定
0
A
回答
0
很難判斷這是否是好的解決方案,因爲有很多關於應用程序體系結構的缺失細節。
基於一個前提,「我有一個包含3個用戶控件窗口,我希望窗口激活控件的的ViewModels命令的按鈕」,一種解決方案可能是:
<Window>
<UserControl Name="Control1" />
<UserControl Name="Control2" />
<UserControl Name="Control3" />
<Button Command="{Binding ElementName="Control1", Path="DataContext.Cmd"}" />
<Button Command="{Binding ElementName="Control2", Path="DataContext.Cmd"}" />
<Button Command="{Binding ElementName="Control3", Path="DataContext.Cmd"}" />
</Window>
0
這有點主觀,但在我看來,viewmodels不應該提供更多的一個視圖。
MainWindow的viewmodel應該完全獨立於UserControl的模型。我建議使用發佈/訂閱者模式通過應用程序發送處理廣泛使用的功能的「事件」(請參閱Event Aggregator)。
0
如果無法通過直接結合在主窗口的DataContext的訪問的ViewModels(即如果三米的ViewModels是不是在主窗口的視圖模型),你可以這樣做:
<Button
Name="Button1"
DataContext="{Binding DataContext, ElementName=UserControl1}"
/>
這如果我能很好地理解你的問題,就應該有效。
相關問題
- 1. MVVM查看事件Viewmodel命令綁定
- 2. 將ViewModel命令綁定到WPF DataGrid
- 3. WPF usercontrol命令綁定到窗口viewmodel
- 4. WPF:將ContextMenu綁定到MVVM命令
- 5. WPF MVVM:綁定命令到事件
- 6. WPF命令綁定到MVVM的DataItemTemplate
- 7. WPF日曆:綁定到MVVM命令?
- 8. 使用MVVM在WPF中綁定命令
- 9. MVVM命令綁定
- 10. 綁定命令MVVM
- 11. 命令綁定MVVM
- 12. WPF MenuItem ViewModel命令
- 13. ListBoxItem的MVVM命令中的WPF列表框的命令綁定
- 14. 如何將控件的命令綁定到MVVM場景中的子Viewmodel命令?
- 15. WPF RibbonApplicationMenuItem命令綁定
- 16. WPF如何執行命令從主ViewModel到MVVM中的子ViewModel
- 17. 綁定WPF事件MVVM ViewModel命令在代碼後面的視圖
- 18. WPF命令綁定
- 19. WPF綁定命令
- 20. WPF綁定UI事件ViewModel中的命令
- 21. 將WPF快捷鍵綁定到ViewModel中的命令
- 22. WPF命令綁定破壞
- 23. WPF - MVVM綁定
- 24. WPF綁定應用程序命令ViewModel ICommand
- 25. WPF MVVM和命令
- 26. WPF MVVM ContextMenu綁定到ObservableCollection <string>不命中命令
- 27. 綁定viewmodel不工作mvvm
- 28. MVVM綁定到Model或ViewModel?
- 29. WPF綁定tp ViewModel
- 30. MVVM ViewModel命名
如果在DataContext對每個用戶控件來說都是正確的,它應該是非常簡單的..如果你需要調用「遠程」命令,請嘗試一個消息框架。 –