#xamarin.forms #freshmvvm
#xamarin.forms #freshmvvm
Вопрос:
У меня есть Xamarin.Формирует приложение с использованием FreshMvvm. Кто-нибудь может сказать мне, могу ли я использовать привязку для обработки изменения PageModel в исходном коде страницы? Например. если в PageModel произойдет событие, подобное этому:
public class VideoCallPageModel : BasePageModel
{
SignalRService signalR;
...
public async override void Init(object initData)
{
base.Init(initData);
signalR = new SignalRService();
signalR.OnIncomingCall = SignalR_IncomingCall;
...
private void SignalR_IncomingCall(object sender, VideoCallPeer peer)
{
...
}
Итак, мне нужно обработать в исходном коде страницы запуск этого события OnIncomingCall. Возможно ли это?
Комментарии:
1. почему бы вам просто не заставить VideoCallPageModel вызывать собственное событие, на которое страница могла бы подписаться?
2. @Jason Не могли бы вы, пожалуйста, привести мне пример или какую-нибудь ссылку? Спасибо!
Ответ №1:
определите пользовательское событие в вашей модели
public delegate void IncomingCallHandler(object sender, VideoCallPeer e);
public event IncomingCallHandler OnIncomingCall;
private void SignalR_IncomingCall(object sender, VideoCallPeer peer)
{
if (OnIncomingCall == null) return;
OnIncomingCall(this, peer);
}
затем ваша страница может подписаться на нее с помощью обработчика событий