我正在寻找一种在WPF中使用mvvm管理工具栏(和菜单)的流畅方法。
考虑具有选项卡式工作空间和异构内容的UI(如Visual Studio)。根据活动选项卡,工具栏应隐藏或可见。您将如何设计工具栏的视图模型?
我会使用工具栏视图模型的集合并将ToolbarTray绑定到它,但是afaik这是不可能的。
任何建议都是相关的。 欢迎链接到样品,最佳实践文件等。
答案 0 :(得分:1)
我最近在我的一个应用程序中遇到了同样的问题。我使用功能区作为主工具栏,根据选择的模块,功能区上的按钮必须隐藏或显示。我提出了两种不同的解决方案......希望有一种解决方案适合你。
第一个解决方案是在应用程序的shell中创建一个区域(它可以是Grid / Canvas / whatever),并根据用户点击的选项卡将所需的工具栏动态加载到该区域。换句话说,如果您有5个不同的选项卡需要自己的工具栏,请创建5个包含工具栏的UserControl,并在用户单击选项卡时将正确的加载到区域中。接下来,您将要回复用户单击工具栏上的按钮的事件。在我的解决方案中,我使用Mediator方法允许ViewModels相互通信。它有效,但我不知道我会再这样做...... CAL可能是更好的方法。
另一个解决方案是创建一个包含所有必需按钮的工具栏,并将其可见性绑定到ViewModel。根据用户的选择,将控件的可见性设置为您的要求。希望这些解决方案中的一个适合您。
顺便问一下......你是德国的哪一部分?我认识一个姓Stoll的男人,所以我不确定这是不是一个普通的名字......