首先下载prism.dryloc框架
创建两个文件夹,Views和ViewModels文件夹,在Views里面创建的是页面,在Viewmodels里面创建的是对 应的类,文件不能创建错误
在App.xaml.cs中将App修改成PrismApplication,创建App的CreateShell函数和RegisterTypes函数(这里是可以系统自动生成的,不是手写)
在MainView中对要跳转的区域命名
<ContentControl Grid.Column="0" prism:RegionManager.RegionName="ContentRegion"/>
在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里面创建的对应的用户界面