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日历:绑定到MVVM命令?
- 5. WPF:将ContextMenu绑定到MVVM命令
- 6. WPF MVVM:绑定命令到事件
- 7. 使用MVVM在WPF中绑定命令
- 8. WPF命令绑定到MVVM的DataItemTemplate
- 9. MVVM命令绑定
- 10. 命令绑定MVVM
- 11. 绑定命令MVVM
- 12. WPF MenuItem ViewModel命令
- 13. 如何将控件的命令绑定到MVVM场景中的子Viewmodel命令?
- 14. WPF RibbonApplicationMenuItem命令绑定
- 15. WPF如何执行命令从主ViewModel到MVVM中的子ViewModel
- 16. 绑定WPF事件MVVM ViewModel命令在代码后面的视图
- 17. WPF绑定命令
- 18. WPF命令绑定
- 19. WPF绑定UI事件ViewModel中的命令
- 20. 将WPF快捷键绑定到ViewModel中的命令
- 21. WPF命令绑定破坏
- 22. WPF绑定应用程序命令ViewModel ICommand
- 23. WPF - MVVM绑定
- 24. WPF MVVM和命令
- 25. WPF MVVM ContextMenu绑定到ObservableCollection <string>不命中命令
- 26. MVVM绑定到Model或ViewModel?
- 27. 绑定viewmodel不工作mvvm
- 28. WPF绑定tp ViewModel
- 29. MVVM ViewModel命名
- 30. WPF/XAML - 绑定控制命令到父窗口的viewmodel?
如果在DataContext对每个用户控件来说都是正确的,它应该是非常简单的..如果你需要调用“远程”命令,请尝试一个消息框架。 –