IMvxMessenger

来源:互联网 发布:摄氏 华氏 转换vb 编程 编辑:程序博客网 时间:2024/06/02 01:33

一:view

1.private IMvxMessenger _messenger = Mvx.Resolve<IMvxMessenger> ();2._versionUpDialogToken = _messenger.SubscribeOnMainThread<ShowVersionUpDialogMessage> (ShowVersionUpDialog);
3.void ShowVersionUpDialog (ShowVersionUpDialogMessage message)        {            UIAlertView alert = new UIAlertView (message.Title, message.Message, null, null, new string[] { "OK" });            alert.Clicked += (s, b) => {                NSUrl url = NSUrl.FromString (APP_STORE_URL);                UIApplication.SharedApplication.OpenUrl (url);                SplashViewModel.DownloadVersion ();            };            alert.Show ();        }
4.public override void ViewWillDisappear (bool animated)        {            base.ViewWillDisappear (animated);            if (_versionUpDialogToken != null) {                _messenger.Unsubscribe<ShowVersionUpDialogMessage> (_versionUpDialogToken);            }        }

二:viewModel

符合条件时:{_messenger.Publish (new ShowVersionUpDialogMessage (this, null, null));

}

三:Message类

using System;using Cirrious.MvvmCross.Plugins.Messenger;namespace BoshiAuthorize.Core.ViewModels{    /// 强制版本升级    public class ShowVersionUpDialogMessage : MvxMessage    {        public string Title { get; set; }        public string Message { get; set; }        public ShowVersionUpDialogMessage (object sender, string title, string message) : base (sender)        {            if (title != null) {                Title = title;            } else {                Title = "バージョンアップのお願い";            }            if (message != null) {                Message = message;            } else {                Message = "お使いのアプリはバージョンアップが必要です。;            }        }    }}

本质是一个MVVMCross框架的一个借口,里面有可以使用的方法
这里写图片描述

0 0