所以我有一个场景,我想实现从UserControl派生的WPF NavigationControl。在那个NavigationControl上,我有两个要求,处理后退/前进导航的历史记录(足够简单),并且能够在视觉上呈现从NavigationFrameBase类型派生的任何控件。同样从UserControl派生的NavigationFrameBase可以以多种形式呈现,因为多个控件将从此类型继承,但NavigationFrameBase应该向NavigationControl提供一种通知形式,以通知它用户与从NavigationFrameBase派生的类型的内容进行交互。请求导航操作,允许NavigationControl呈现新的NavigationFrameBase。
我的问题有两个方面:
答案 0 :(得分:1)
这取决于您期望父母与子女之间的沟通方式。如果只是一个NavigationControl监听事件和反应的问题,那么简单的事件处理模式就可以工作。
但是,如果您需要NavigationControl来影响NavigationFrames(例如,要禁用/启用,或者在下拉菜单的情况下,您需要在另一个打开时关闭任何打开的下拉菜单等)或者允许一个NavigationFrame影响一个兄弟,然后你需要使用一个中介模式,或者在NavigationFrameBase上公开回调方法来处理这些操作。
如果不了解您的预期用例,很难给出更多细节。