【发布时间】:2013-04-05 04:23:21
【问题描述】:
我正在开发一个 WPF 应用程序,我希望在屏幕顶部有一个公共工具栏(当我说“工具栏”时,它不会是 WPF 工具栏控件,更可能只是一系列类似于Windows 8 应用栏)。我正在使用 Prism 导航。
我的想法是,这个工具栏将位于主窗口中,并且在整个应用程序中始终可见。工具栏将包含几个标准按钮,例如“退出”和“帮助”。
在工具栏下方,主窗口基本上只包含一个大的 Prism 区域。当我将此区域导航到视图(称为“view1”)时,我希望 view1 将其他按钮添加到工具栏中。
现在,“view1”可能有自己的 Prism 区域,当其中一个被导航到视图(称为“view2”)时,view2 应该能够在“标准”旁边添加自己的按钮主窗口按钮和 view1 添加的按钮。
不用说,在离开视图时应该移除相关按钮。
我确信我可以推出自己的解决方案,但想知道我是否可以使用 Prism 简化事情?我考虑在“标准”按钮旁边的工具栏中放置一个 Prism 区域。 “view1”然后会将这个区域导航到一个基本上只包含 view1 按钮的视图。这个“view1 按钮视图”本身可以包含一个区域,该区域可以导航到它自己的“按钮视图”。这是可行的,还是会变得太复杂?
【问题讨论】:
-
我不熟悉 Prism,但我在自己的 MVVM 框架中使用主 ViewModel 中的
ObservableCollection<DelegateCommand>实现了这一点,然后根据子 ViewModel 的生命周期添加/删除项目.