日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

WPF框架Prism中對話框Dialog用法介紹_自學過程

作者:痕跡g ? 更新時間: 2022-04-18 編程語言

什么是Dialog?

對話框實際上是我們應用程序經常用到的一個功能, 類如: Show、ShowDialog。

可以彈出一個我們指定的窗口, 僅此而已, 那么在Prism當中, Dialog指的是什么?

Prism提供了一組對話服務, 封裝了常用的對話框組件的功能, 例如:

  • RegisterDialog/IDialogService (注冊對話及使用對話)
  • 打開對話框傳遞參數/關閉對話框返回參數
  • 回調通知對話結果

創建Dialog流程

  • 創建對話框,通常是一組用戶控件 ,并且實現 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 方法調用對話框

        private readonly IDialogService dialogService;

        private void ShowDialog()
        {
            DialogParameters keys = new DialogParameters();
            keys.Add("message", "Hello,Prism!");

            dialogService.ShowDialog("MessageDialog", keys, arg =>
            {
                
            });
        }

調用Show/ShowDialog,我們通過注冊時候的名稱進行打開, 并且可以傳遞參數, 以及回調方法(主要用于返回對話框的返回結果)

封裝Dialog API

對于對話框而言, 通常我們需要做的只是打開, 傳遞參數, 接收到指定的返回結果,僅此而已。
對于常用的公共對話框, 我們可以封裝成擴展方法, 以便于我們在應用程序的任何位置可以使用到它, 所以, 通常我們可以考慮以下做法:

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);
}

原文鏈接:https://www.cnblogs.com/zh7791/p/14140920.html

欄目分類
最近更新