Prism Sample 17-BasicRegionNavigation

Posted cbaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prism Sample 17-BasicRegionNavigation相关的知识,希望对你有一定的参考价值。

本例是基础的导航应用

在窗口中布局了2个按钮,一个区域

 <DockPanel LastChildFill="True">
        <StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="5" >
            <Button Command="{Binding NavigateCommand}" CommandParameter="ViewA" Margin="5">Navigate to View A</Button>
            <Button Command="{Binding NavigateCommand}" CommandParameter="ViewB" Margin="5">Navigate to View B</Button>
        </StackPanel>
        <ContentControl prism:RegionManager.RegionName="ContentRegion" Margin="5"  />
    </DockPanel>

其中2个按钮绑定了同一个命令,只是参数不同,即命令是导航,目标不同。

public DelegateCommand<string> NavigateCommand { get; private set; }

        public MainWindowViewModel(IRegionManager regionManager)
        {
            _regionManager = regionManager;

            NavigateCommand = new DelegateCommand<string>(Navigate);
        }

        private void Navigate(string navigatePath)
        {
            if (navigatePath != null)
                _regionManager.RequestNavigate("ContentRegion", navigatePath);
        }

扩展模块定义了2个视图,用作导航的视图。要点是在模块中注册为导航视图。

 public class ModuleAModule : IModule
    {
        public void OnInitialized(IContainerProvider containerProvider)
        {
            
        }

        public void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterForNavigation<ViewA>();
            containerRegistry.RegisterForNavigation<ViewB>();
        }
    }

 

以上是关于Prism Sample 17-BasicRegionNavigation的主要内容,如果未能解决你的问题,请参考以下文章

Prism Sample 29-InvokeCommandAction

从PRISM开始学WPFPrism?

从PRISM开始学WPFMVVMViewModel?

从PRISM开始学WPFMVVMCommand?

从PRISM开始学WPFPrism-Module?

从PRISM开始学WPFMVVM事件聚合器EventAggregator?