Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用mvvm和WPF管理工具栏_Wpf_Mvvm_Toolbar - Fatal编程技术网

如何使用mvvm和WPF管理工具栏

如何使用mvvm和WPF管理工具栏,wpf,mvvm,toolbar,Wpf,Mvvm,Toolbar,我正在寻找一种在WPF中使用mvvm管理工具栏(和菜单)的平滑方法 考虑一个具有选项卡式工作空间和异构内容(如VisualStudio)的UI。根据活动选项卡的不同,工具栏应隐藏或可见。如何为工具栏设计视图模型 我会使用工具栏视图模型的集合并将工具栏托盘绑定到它,但这是不可能的 任何建议都值得推荐。 欢迎链接到样本、最佳实践论文等。我最近在一个应用程序中遇到了同样的问题。我使用功能区作为主工具栏,根据选择的模块,功能区上的按钮必须隐藏或显示。我想出了两种不同的解决方案。。。希望有一个能为你工作

我正在寻找一种在WPF中使用mvvm管理工具栏(和菜单)的平滑方法

考虑一个具有选项卡式工作空间和异构内容(如VisualStudio)的UI。根据活动选项卡的不同,工具栏应隐藏或可见。如何为工具栏设计视图模型

我会使用工具栏视图模型的集合并将工具栏托盘绑定到它,但这是不可能的

任何建议都值得推荐。
欢迎链接到样本、最佳实践论文等。

我最近在一个应用程序中遇到了同样的问题。我使用功能区作为主工具栏,根据选择的模块,功能区上的按钮必须隐藏或显示。我想出了两种不同的解决方案。。。希望有一个能为你工作

第一种解决方案是在应用程序的shell中创建一个区域(可以是网格/画布/任何东西),并根据用户单击的选项卡将所需的工具栏动态加载到此区域。换句话说,如果您有5个需要自己工具栏的不同选项卡,请创建5个包含工具栏的用户控件,并在用户单击选项卡时将正确的控件加载到区域中。接下来,您需要响应用户单击工具栏上的按钮时发生的事件。在我的解决方案中,我使用了允许ViewModels相互通信的方法。这是可行的,但我不知道我会再这样做。。。CAL可能是更好的方法

另一种解决方案是创建一个包含所有必需按钮的工具栏,并将其可见性绑定到ViewModel。根据用户的选择,将控件的可见性设置为您的任何要求。希望这些解决方案中有一个适合您


顺便说一下。。。你来自德国的哪个地区?我认识一个姓斯托尔的人,所以我不确定这是不是一个普通的名字…

我做了一些类似于您的第一个解决方案的事情,但使用了一个用户控件。我主要尝试使用DataTemplates和DataType来选择工具栏视图,但没有解决这个问题,所以我最终对每个工具栏使用相同的UserControl。这些项是数据绑定的。因此,这非常有效,但不如您的解决方案灵活。关于可见性问题,我使用了类似的方法。这可以很容易地用Merge/Unmerge方法封装到一个类中。我来自巴登-沃尔滕伯格。但是这个名字来自于几代人以前的图林根。