не может передать значения в MvxCommand из хостинга - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь передать два значения в MvxCommand, как показано в коде ниже.Первое значение имеет тип string, а второе - Enum.Но я получаю следующую ошибку:

    the non-generic type MvxCommand can’t be used with type arguments

Пожалуйста, дайте мне знать, как исправить эту ошибку.

код :

        //in View „Activity"
    ViewModel. DexCommand.Execute(result, value);

        //in ViewModel 
public IMvxCommand DexCommand => new MvxCommand<string, VRTEnum>((res, val) =>
    {

    });

1 Ответ

0 голосов
/ 28 января 2019

неуниверсальный тип MvxCommand нельзя использовать с аргументами типа

Вот фрагмент исходного кода:

namespace MvvmCross.Commands
   {
      public interface IMvxCommand : ICommand
        {
          void RaiseCanExecuteChanged();
          void Execute();
          bool CanExecute();
        }

      public interface IMvxCommand<T> : ICommand
        {
          [Obsolete("Use the strongly typed version of Execute instead", true)]
          new void Execute(object parameter);
          [Obsolete("Use the strongly typed version of CanExecute instead", true)]
          new bool CanExecute(object parameter);

          void RaiseCanExecuteChanged();

          void Execute(T parameter);

          bool CanExecute(T parameter);
        }
    }

вы можете видеть, что параметр IMvxCommand<T> является T

поэтому, если вы хотите передать два параметра, я думаю, вы могли бы использовать Tuple, чтобы превратить их в один объект.

например,

 new MvxCommand<Tuple<string, VRTEnum>>(Action);
...