如何在代码隐藏中处理更改 PageModel?

How can I handle changing PageModel in code-behind?

我有一个使用 FreshMVVM 的 Xamarin.Forms 应用程序。谁能告诉我是否可以使用绑定来处理更改页面代码隐藏中的页面模型?例如。如果 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)
    {
        ...
    }

所以我需要在 Page 的代码隐藏中处理触发此 OnIncomingCall 事件。可能吗?

在您的模型中定义自定义事件

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);
}

然后您的页面可以使用事件处理程序订阅它