WPF使用prism框架进行页面跳转

首先下载prism.dryloc框架

创建两个文件夹,Views和ViewModels文件夹,在Views里面创建的是页面,在Viewmodels里面创建的是对 应的类,文件不能创建错误
在App.xaml.cs中将App修改成PrismApplication,创建App的CreateShell函数和RegisterTypes函数(这里是可以系统自动生成的,不是手写)
在MainView中对要跳转的区域命名

在MainVie的程序设计器里面记得增加这句话

prism:ViewModelLocator.AutoWireViewModel="True",

在MainViewModel.cs文件中创建如下命名

 public class MainViewModel:BindableBase
    {
        private readonly IRegionManager regionManager;
        //private IRegionNavigationJournal journal;

        public DelegateCommand<string> OpenCommand { get; private set; }
        public DelegateCommand BackCommand { get; private set; }

        public MainViewModel(IRegionManager regionManager)
        {
            //BackCommand = new DelegateCommand(Back);
            OpenCommand = new DelegateCommand<string>(Open);
            this.regionManager = regionManager;
        }

        private void Open(string obj)
        {
            regionManager.Regions["ContentRegion"].RequestNavigate(obj);
            //regionManager.Regions["ContentRegion"].RequestNavigate(obj,callBack=>
            //{
            //    //if ((bool)callBack.Result)
            //    //{
            //    //    journal = callBack.Context.NavigationService.Journal;
            //    //}
            //});
        }
    }

在对应的跳转按钮里面记得加进去命令绑定

 <StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Right">
            <Button Content="测量" Margin="5" Command="{Binding OpenCommand}" CommandParameter="ViewA"/>
            <Button Content="数据记录" Margin="5" Command="{Binding OpenCommand}" CommandParameter="ViewB"/>
            <Button Content="单元测试" Margin="5" Command="{Binding OpenCommand}" CommandParameter="ViewC"/>
            <Button Content="返回上一步" Margin="5" Command="{Binding BackCommand}"/>
        </StackPanel>

在App.xaml.cs中在CreateShell函数中返回主界面,在RegisterTypes函数中注入依赖,这里的依赖就是在Views里面创建的对应的用户界面
WPF使用prism框架进行页面跳转_第1张图片

你可能感兴趣的:(wpf,c#)