最近在学习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();
}
private void SubscribeToMessages()
{
Messag

本文介绍了在Xamarin.Forms的MVVM结构中,如何利用MessagingCenter实现在ViewModel和View之间的值传递,以替代直接在UI层调用Navigation.Push进行页面跳转的方法。详细步骤包括定义数据类、ViewModel中发送消息的实现,以及在其他组件中接收消息的考虑。
最低0.47元/天 解锁文章
1239

被折叠的 条评论
为什么被折叠?



