WPF框架Prism中對話框Dialog用法介紹
什么是Dialog?
對話框?qū)嶋H上是我們應用程序經(jīng)常用到的一個功能, 類如: Show、ShowDialog。
可以彈出一個我們指定的窗口, 僅此而已, 那么在Prism當中, Dialog指的是什么?
Prism提供了一組對話服務, 封裝了常用的對話框組件的功能, 例如:
- RegisterDialog/IDialogService (注冊對話及使用對話)
- 打開對話框傳遞參數(shù)/關閉對話框返回參數(shù)
- 回調(diào)通知對話結(jié)果
創(chuàng)建Dialog流程
- 創(chuàng)建對話框,通常是一組用戶控件 ,并且實現(xiàn) IDialogAware
public interface IDialogAware { string Title { get; } event Action<IDialogResult> RequestClose; bool CanCloseDialog(); void OnDialogClosed(); void OnDialogOpened(IDialogParameters parameters); }
- 注冊對話框 RegisterDialog
protected override void RegisterTypes(IContainerRegistry containerRegistry) { //僅注冊視圖 containerRegistry.RegisterDialog<MessageDialog>(); //注冊視圖時綁定VM containerRegistry.RegisterDialog<MessageDialog, MessageDialogViewModel>(); //添加別名 containerRegistry.RegisterDialog<MessageDialog>("DialogName"); }
- 使用IDialogService接口 Show/ShowDialog 方法調(diào)用對話框
private readonly IDialogService dialogService; private void ShowDialog() { DialogParameters keys = new DialogParameters(); keys.Add("message", "Hello,Prism!"); dialogService.ShowDialog("MessageDialog", keys, arg => { }); }
調(diào)用Show/ShowDialog,我們通過注冊時候的名稱進行打開, 并且可以傳遞參數(shù), 以及回調(diào)方法(主要用于返回對話框的返回結(jié)果)
封裝Dialog API
對于對話框而言, 通常我們需要做的只是打開, 傳遞參數(shù), 接收到指定的返回結(jié)果,僅此而已。
對于常用的公共對話框, 我們可以封裝成擴展方法, 以便于我們在應用程序的任何位置可以使用到它, 所以, 通常我們可以考慮以下做法:
public static void ShowNotification(this IDialogService dialogService, string message, Action<IDialogResult> callback) { var p = new DialogParameters(); p.Add("message", message); dialogService.ShowDialog(“NotificationDialog", p, callback); }
到此這篇關于WPF框架Prism中對話框Dialog用法介紹的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Mac中體驗ASP.NET 5 beta2的K gen代碼生成
這篇文章主要介紹了Mac中體驗ASP.NET 5 beta2的K gen代碼生成,需要的朋友可以參考一下。2016-06-06解讀ASP.NET 5 & MVC6系列教程(8):Session與Caching
這篇文章主要介紹了ASP.NET 5 中的Session與Caching配置和使用,需要的朋友可以參考下2016-06-06在ASP.NET 2.0中操作數(shù)據(jù)之七十三:用Managed Code創(chuàng)建存儲過程和用戶自定義函數(shù)(上部分)
Microsoft SQL Server 2005整合了Common Language Runtime (CLR),它允許用managed code來創(chuàng)建數(shù)據(jù)庫對象,本文主要介紹了如何使用managed code創(chuàng)建存儲過程。2016-05-05解讀ASP.NET 5 & MVC6系列教程(7):依賴注入
這篇文章主要介紹了ASP.NET 5 依賴注入,需要的朋友可以參考下2016-06-06在ASP.NET 2.0中操作數(shù)據(jù)之四十五:DataList和Repeater里的自定義Button
本文主要介紹在DataList和Repeater添加諸如Button,LinkButton和ImageButton等控件的方法,并根據(jù)相關控件CommandName屬性觸發(fā)相應的事件,執(zhí)行相應的操作。2016-05-05Microsoft .Net Remoting系列教程之一:.Net Remoting基礎篇
本文主要講解.Net Remoting的基礎,需要的朋友可以參考下。2016-05-05