0

所以我有一个场景,我想实现一个从 UserControl 派生的 WPF NavigationControl。在那个 NavigationControl 上,我有两个要求,处理后退/前进导航的历史记录(足够简单),并且能够直观地呈现从 NavigationFrameBase 类型派生的任何控件。同样从 UserControl 派生的 NavigationFrameBase 可以以多种形式呈现,因为多个控件将从该类型继承,但是 NavigationFrameBase 应该向 NavigationControl 提供一种通知形式,以通知它用户与从 NavigationFrameBase 派生的类型的内容进行交互具有请求了 Navigate 操作,允许 NavigationControl 呈现新的 NavigationFrameBase。

我的问题有两个:

  • 设计 NavigationControl 以包含它将呈现的 NavigationFrameBase 实例的最佳方法是什么
  • WPF中处理子->父请求系统的正确方法是什么?路由/附加事件似乎是正确的,但我可以看到一个中介模式服务于相同的功能。
4

1 回答 1

1

这取决于您期望父母和孩子之间如何进行交流。如果这只是 NavigationControl 侦听事件并做出反应的问题,那么简单的事件处理模式就可以工作。

但是,如果您需要 NavigationControl 来影响 NavigationFrames(例如,禁用/启用或在下拉菜单的情况下,您需要在另一个打开时关闭任何打开的下拉菜单等)或允许一个 NavigationFrame要影响同级,则需要使用中介模式,或在 NavigationFrameBase 上公开回调方法来处理这些操作。

如果不了解更多关于您预期的用例,很难为您提供比这更多的细节。

于 2012-09-27T00:59:23.093 回答