1

我正在开发一个 WPF 应用程序,我希望在屏幕顶部有一个通用工具栏(当我说“工具栏”时,它不会是 WPF 工具栏控件,更可能只是一系列类似于 Windows 8 应用程序的图像按钮酒吧)。我正在使用棱镜导航。

我的想法是这个工具栏将存在于主窗口中,并且在整个应用程序中始终可见。工具栏将包括几个标准按钮,例如“退出”和“帮助”。

在工具栏下方,主窗口基本上只包含一个大的 Prism 区域。当我将此区域导航到视图(称为“view1”)时,我希望 view1 将其他按钮添加到工具栏中。

现在,“view1”可能有自己的 Prism 区域,当其中一个被导航到视图(称为“view2”)时,view2 应该能够在“标准”主窗口按钮旁边添加自己的按钮以及view1 添加的按钮。

不用说,在离开视图时应该删除相关按钮。

我确信我可以推出自己的解决方案,但想知道我是否可以使用 Prism 简化事情?我考虑在“标准”按钮旁边的工具栏中放置一个 Prism 区域。“view1”然后会将这个区域导航到一个基本上只包含 view1 按钮的视图。这个“view1 按钮视图”本身可以包含一个区域,view2 可以导航到它自己的“按钮视图”。这是可行的,还是会变得太复杂?

4

1 回答 1

0

听起来你可能有点复杂,或者至少你最后失去了我......但今天并不需要太多!

一个建议:例如,您的“工具栏”可能是ItemsControlItemsSource的某个类的集合ToolBarOperation。此类可以包含要向用户显示的描述和单击时要执行的 ICommand。将您ItemsControl的项目设置为按钮并将每个按钮的命令绑定到您的类的 ICommand。该集合将由当前可见视图的视图模型填充(即View1,视图模型已经知道它将负责执行哪些命令。加载时,用的列表View1填充集合。)ViewModel1ToolBarOperation

因此,要回答您的问题,我认为您不需要任何特定于 Prism 的东西(除了它们的实现DelegateCommand)......文档中讨论的“控制器模式”可能会有所帮助。但是,与 Prism 一起完成您想要的事情应该不难。

于 2013-04-12T15:19:17.500 回答