问题描述
我有一个使用FreshMVVM的Xamarin.Forms应用程序。有人可以告诉我是否可以使用绑定来处理在Page的后台代码中更改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事件时,我需要处理Page的代码隐藏。有可能吗?
解决方法
在模型中定义自定义事件
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);
}
然后您的页面可以使用事件处理程序进行订阅