0

我试图用这个例子来做到这一点:

public void Method1(object someClassAsTSender, object parameter)
{
    //i think parametertype = parameter...
    MessagingCenter.Subscribe<someClassAsTSender, parametertype> (this, "messageKey", (message, args) =>
    {
        Device.BeginInvokeOnMainThread(async () =>
        {
            //await do;
        });
    }
    );
}

或者

public void Method2(object someClassAsTSender, object parameter)
{
        //i think parametertype = parameter...
        MessagingCenter.Subscribe<someClassAsTSender, parametertype> (this, "messageKey", (message, args) =>
        {
            //do;
        }
    );
}

我尝试使用 GetType().Name、typeof(),但不知道如何解决这个问题。这只是一个疑问,因为对于 MVVM,我认为使用 Framework 更有趣。

如果这样使用MessagingCenter不正确,请解释。

4

1 回答 1

0
public static void Subscribe<TSender,TArgs> (object subscriber, string message, Action<TSender,TArgs> callback, TSender source = null) where TSender : class;

TArgs是用作消息的消息参数的对象的类型,但您不能使用typeofGetType设置它。您可以将其设置为objectlike :

public void Method1(object someClassAsTSender, object parameter)
 {
   //i think parametertype = parameter...
   MessagingCenter.Subscribe<someClassAsTSender, object> (this, "messageKey", (message, args) =>
    {
       //convert the type (e.g  string data = args as string)
       Device.BeginInvokeOnMainThread(async () =>
        {
          //await do;
        });
    }
   );
 }
于 2019-10-21T06:43:32.063 回答