我今天正在做一个WPF项目,它有一个主导航窗口,然后在这个主窗口中加载了4个页面(使用NavigationService.Nagivate...)..在XAML中,这创建了许多重复的代码,所以我希望将菜单重构为一个用户控件,然后将其绑定到每个页面。我试图创建一个类来处理每个页面的导航和加载,但是我发现NavigationServices是一个密封的类,不能被实例化。
谁能提供一个建议/解决方案,如何创建一个用户控件与菜单项,将允许导航到项目中的新页面的能力。我已经能够在页面和后面的直接代码中做到这一点,但我没有任何机会尝试将两者分开。如果这是太模糊,请让我知道,我会提供更多的deails与代码样本。
提前感谢
发布于 2011-02-12 12:52:07
在用户控件上创建NavigationService依赖项属性。然后,在实例化控件时,将此属性绑定到应在其中进行导航的容器的NavigationService。例如,页面可能会像这样显示用户控件:
<local:NavBox NavigationService="{Binding NavigationService, RelativeSource={RelativeSource AncestorType={x:Type NavigationWindow}}}" />现在,当您的UserControl在其NavigationService上调用导航时,实际上将在包含NavigationWindow的NavigationService上调用导航。(这可以通过显而易见的方式进行修改,以支持框架或页面,而不是NavigationWindow。)
https://stackoverflow.com/questions/4976289
复制相似问题