在Xamarin开发,使用MessageCenter在ViewModel和View之间传递值

本文介绍了在Xamarin.Forms的MVVM结构中,如何利用MessagingCenter实现在ViewModel和View之间的值传递,以替代直接在UI层调用Navigation.Push进行页面跳转的方法。详细步骤包括定义数据类、ViewModel中发送消息的实现,以及在其他组件中接收消息的考虑。
摘要由CSDN通过智能技术生成

最近在学习Xamarin.Forms的开发,并且使用MVVM的结构。在学习的过程中发现页面的点击命令都在ViewModel中的Command实现,如果想要点击按键之后实现页面的跳转,必须在UI层调用 Navigation.Push方法才能实现。后来想想可以用MessageCenter实现。下面是实现方法:

首先定义一个传递的数据类,

    public class NavigationMessage
    {
        public object Paremeter { get; set; }
    }


在ViewModel中输入发现送消息代码,可放在某个点击命令中,

MessagingCenter.Send<NavigationMessage>(new NavigationMessage() { Paremeter = "hello" },
                "Test");


在View中订阅该消息通知,

        protected override void OnAppearing()
        {
            SubscribeToMessages();
            base.OnAppearing();
        }

        protected override void OnDisappearing()
        {
            UnsubscribeToMessages();
            base.OnDisappearing();
        }

      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值