1.注册Dialog对应信息

 protected override void RegisterTypes(IContainerRegistry containerRegistry){containerRegistry.RegisterDialog< Views.DialongView,ViewModels.DialongViewModel>();//viewModel一定要继承 IDialogAware}

2.调用

 private IDialogService _dialogService;//通过IDialogService接口获取当全局定义可用区域,往这个区域动态的去设置内容.public MainViewModel( IDialogService dialogService){//构造函数获取IDialogService接口获取当全局定义可用区域_dialogService = dialogService;}
//下面是使用private void Open_Dialog(object obj){
//obj要各View中的窗体一个名字DialogParameters par = new DialogParameters();par.Add("Title", "测试弹窗");par.Add("Message", "生是中国人,死是中国魂.");//传两个参数过去par.Add("Brush", Brushes.Red); //加个字体颜色_dialogService.ShowDialog(obj.ToString(), par, callback=>{if (callback.Result == ButtonResult.OK){//点击了确定按键string result = callback.Parameters.GetValue<string>("Value");}else{ //点击了取消}});}

3.dialog  ViewModel接收处理以及返回

public class DialongViewModel : BindableBase, IDialogAware//Dialog窗体一定要继承这个IDialogAware接口{private string messagem;public string Message{get { return messagem; }set { messagem = value; RaisePropertyChanged(); }}private Brush brushChange;public Brush BrushChange{get { return brushChange; }set { brushChange = value; RaisePropertyChanged(); }}public string Title { get; set; }public event Action<IDialogResult> RequestClose;/// <summary>/// 系统的那个Close可用/// </summary>/// <returns></returns>public bool CanCloseDialog(){return true;}/// <summary>/// 关掉窗体的事件/// </summary>public void OnDialogClosed(){DialogParameters parameters = new DialogParameters();parameters.Add("Value", "Click Confirm");RequestClose?.Invoke(new DialogResult(ButtonResult.OK, parameters));}/// <summary>/// 打开窗体的事件/// </summary>/// <param name="parameters"></param>public void OnDialogOpened(IDialogParameters parameters){Title = parameters.GetValue<string>("Title");//窗体显示的标题Message = parameters.GetValue<string>("Message");//窗体显示的内容BrushChange= parameters.GetValue<Brush>("Brush"); //字显示的颜色}public ICommand ClickCommandDialogOk //绑定的OK按键{get => new DelegateCommand(OnDialogClosed);}public ICommand ClickCommandDialogCancel //绑定的取消按键{get => new DelegateCommand(() =>{RequestClose?.Invoke(new DialogResult(ButtonResult.No));});}}

UI绑定代码

    <Grid Background="White"><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition Height="auto "></RowDefinition></Grid.RowDefinitions><TextBlock Text="{Binding Message}" Foreground="{Binding BrushChange}"  FontSize="20" FontWeight="Bold" HorizontalAlignment="Center"  VerticalAlignment="Top"   Margin="15"></TextBlock><StackPanel  Grid.Row="2" HorizontalAlignment="Right" Orientation="Horizontal" ><Button Content="取消" Margin="10" Command="{Binding ClickCommandDialogCancel}"   FontSize="20"></Button><Button Content="确定" Margin="10" Command="{Binding ClickCommandDialogOk }" FontSize="20"></Button></StackPanel></Grid>

资源

Prism模块化and导航-C#文档类资源-CSDN下载Prism模块化and导航,传参数导航更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/lw8014/85016701

Prism Dialog相关推荐

  1. WPF Prism框架之Dialog

    基本用法 1.添加一个用户控件(作为弹出窗口的内容)->进行注册RegisterDialog 2.添加对应的ViewModel->实现IDialogAware接口 3.通过注入的IDial ...

  2. 【Prism系列】Prism子窗口实现

    前言 上节介绍的事件聚合器其实就可以实现MVVM模式下的弹窗过程,不过Prism非常贴心的有封装了专门实现子窗口的全套逻辑. IDialogAware 既然要打开子窗口,那我们需要准备内容,但是窗口本 ...

  3. Prism.Wpf框架中WindowStartupLocation的问题

    目录 一.出现场景 二.原因分析 三.解决方案 一.出现场景 版本:Prism.Wpf 8.1.97.在应用IDialogService,来显示弹窗时,主界面的ViewModel: public cl ...

  4. WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)

    最近通过WPF开发项目,为了对WPF知识点进行总结,所以利用业余时间,开发一个学生信息管理系统[Student Information Management System].前四篇文章进行了框架搭建和 ...

  5. prism项目搭建 wpf_Prism完成的一个WPF项目

    本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要针对C#初学者,巩固C#常用知识点: 中级篇主要针对WPF布局与Mat ...

  6. 拟合公式_Graphpad Prism 8.0对散点图进行拟合

    解螺旋公众号·陪伴你科研的第1764天 Graphpad Prism PK 三大统计软件. Graphpad Prism 8.0是由Graphpad公司推出的一款非常实用的医学绘图软件,集生物统计.曲 ...

  7. 2、Prism的使用一

    简介:笔者准备写三篇文章来把prism的使用介绍一下,希望通过这三篇文章可以是小伙伴们能基于Prism构建自己的项目.截至2022年3月1号,Prism框架更新到了8.1,笔者所使用的都是8.0以上的 ...

  8. WPF Prism(五)Navigation

    WPF Prsim(一)Region WPF Prism(二)Module WPF Prism(三)ViewModelLocator WPF Prism(四)MVVM WPF Prism(五)Navi ...

  9. Activity在有Dialog时按Home键的生命周期

    当一个Activity弹出Dialog对话框时,程序的生命周期依然是onCreate() - onStart() - onResume(),在弹出Dialog的时候并没有onPause()和onSto ...

最新文章

  1. 安装node-sass时出现的错误解决方案(Mac自用,也可以借鉴)
  2. 卡巴斯基:今年以来物联网恶意软件数量已超过去年的2倍
  3. java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
  4. tomcat问题记录-线程池引发的问题
  5. 使用PDB调试Python程序的完整实践
  6. EnforceLearning-主动强化学习
  7. 机器学习常见面试题整理
  8. 比特币总量是2100万吗?为什么?
  9. IDEA 编译时 报 “常量字符串过长” 解决办法
  10. Data Visualization [--0]
  11. aix服务器端口配置文件,aix系统查看端口号
  12. 斐波那契数列(费氏数列)
  13. java多重if 嵌套if_流程控制之if、多重if、嵌套
  14. YouTube视频推荐系统总结
  15. 齐次线性方程组系数矩阵的秩与解集的秩
  16. 版本管理工具和as的一些配置
  17. System.Runtime.InteropServices.InvalidComObjectException:“COM 对象与其基础 RCW 分开后就不能再使用。”报错解决
  18. 位图字体生成工具 BMFont汉化版
  19. vim之快速查找功能
  20. 1.2 电流和电压的参考方向

热门文章

  1. [JS]技术交底列表
  2. Android手机SD卡各文件夹说明
  3. week67(2021.10.23-2021.11.5)
  4. 一文搞懂Typescript
  5. 计算机计算器logo,计算器品牌哪个比较好(卡西欧stylish计算器入手体验)
  6. 【GEE笔记】有效像元(面积、数量)统计
  7. 关于计算机的英语谚语,英语谚语大全 关于C的谚语
  8. - java实现审核流程
  9. 计算机东大计算机三在线作业,东大15秋学期《计算机组成与系统结构》在线作业3满分答案...
  10. Codeforces Beta Round #4 (Div. 2 Only)