Prism Dialog
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相关推荐
- WPF Prism框架之Dialog
基本用法 1.添加一个用户控件(作为弹出窗口的内容)->进行注册RegisterDialog 2.添加对应的ViewModel->实现IDialogAware接口 3.通过注入的IDial ...
- 【Prism系列】Prism子窗口实现
前言 上节介绍的事件聚合器其实就可以实现MVVM模式下的弹窗过程,不过Prism非常贴心的有封装了专门实现子窗口的全套逻辑. IDialogAware 既然要打开子窗口,那我们需要准备内容,但是窗口本 ...
- Prism.Wpf框架中WindowStartupLocation的问题
目录 一.出现场景 二.原因分析 三.解决方案 一.出现场景 版本:Prism.Wpf 8.1.97.在应用IDialogService,来显示弹窗时,主界面的ViewModel: public cl ...
- WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)
最近通过WPF开发项目,为了对WPF知识点进行总结,所以利用业余时间,开发一个学生信息管理系统[Student Information Management System].前四篇文章进行了框架搭建和 ...
- prism项目搭建 wpf_Prism完成的一个WPF项目
本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要针对C#初学者,巩固C#常用知识点: 中级篇主要针对WPF布局与Mat ...
- 拟合公式_Graphpad Prism 8.0对散点图进行拟合
解螺旋公众号·陪伴你科研的第1764天 Graphpad Prism PK 三大统计软件. Graphpad Prism 8.0是由Graphpad公司推出的一款非常实用的医学绘图软件,集生物统计.曲 ...
- 2、Prism的使用一
简介:笔者准备写三篇文章来把prism的使用介绍一下,希望通过这三篇文章可以是小伙伴们能基于Prism构建自己的项目.截至2022年3月1号,Prism框架更新到了8.1,笔者所使用的都是8.0以上的 ...
- WPF Prism(五)Navigation
WPF Prsim(一)Region WPF Prism(二)Module WPF Prism(三)ViewModelLocator WPF Prism(四)MVVM WPF Prism(五)Navi ...
- Activity在有Dialog时按Home键的生命周期
当一个Activity弹出Dialog对话框时,程序的生命周期依然是onCreate() - onStart() - onResume(),在弹出Dialog的时候并没有onPause()和onSto ...
最新文章
- 安装node-sass时出现的错误解决方案(Mac自用,也可以借鉴)
- 卡巴斯基:今年以来物联网恶意软件数量已超过去年的2倍
- java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
- tomcat问题记录-线程池引发的问题
- 使用PDB调试Python程序的完整实践
- EnforceLearning-主动强化学习
- 机器学习常见面试题整理
- 比特币总量是2100万吗?为什么?
- IDEA 编译时 报 “常量字符串过长” 解决办法
- Data Visualization [--0]
- aix服务器端口配置文件,aix系统查看端口号
- 斐波那契数列(费氏数列)
- java多重if 嵌套if_流程控制之if、多重if、嵌套
- YouTube视频推荐系统总结
- 齐次线性方程组系数矩阵的秩与解集的秩
- 版本管理工具和as的一些配置
- System.Runtime.InteropServices.InvalidComObjectException:“COM 对象与其基础 RCW 分开后就不能再使用。”报错解决
- 位图字体生成工具 BMFont汉化版
- vim之快速查找功能
- 1.2 电流和电压的参考方向
热门文章
- [JS]技术交底列表
- Android手机SD卡各文件夹说明
- week67(2021.10.23-2021.11.5)
- 一文搞懂Typescript
- 计算机计算器logo,计算器品牌哪个比较好(卡西欧stylish计算器入手体验)
- 【GEE笔记】有效像元(面积、数量)统计
- 关于计算机的英语谚语,英语谚语大全 关于C的谚语
- - java实现审核流程
- 计算机东大计算机三在线作业,东大15秋学期《计算机组成与系统结构》在线作业3满分答案...
- Codeforces Beta Round #4 (Div. 2 Only)