Передача переменных из ViewModel в другое представление (MVVMCross)

Последние пару недель я работал над разработкой кросс-платформенного приложения (IOS/Android/WP7) с использованием MVVMCross. рамки. Сегодня я столкнулся с проблемой, которую не знаю, как решить, поэтому, надеюсь, вы сможете подтолкнуть меня в правильном направлении.

В IOS у меня есть следующая конструкция для перехода на другую страницу (приведенный ниже код расположен в ViewModel):

KeyValuePair<string,string> kvpAct1 = new KeyValuePair<string, string>("short", ".countertest5");

public IMvxCommand BeckhoffActuator1
{
    get
    {           
        return new MvxRelayCommand<Type>((type) => this.RequestNavigate<Beckhoff.BeckhoffActuatorViewModel>(kvpAct1));
    }
}

Когда эта команда IMvxCommand запускается (нажата кнопка), загружается следующее представление, в данном случае BeckhoffActuatorViewModel . В коде BeckhoffActuatorView я использую приведенную выше пару ключ-значение:

public class BeckhoffActuatorView : MvxTouchDialogViewController<BeckhoffActuatorViewModel>
{

    ICollection<string> icol;

    public BeckhoffActuatorView(MvxShowViewModelRequest request) : base(request, UITableViewStyle.Grouped, null, true)
    {

        icol = request.ParameterValues.Values;

    }

    public override void ViewDidLoad()
    {
        //Code
    }
}

Эта конструкция отлично работает в IOS, но я хотел бы использовать ту же конструкцию в своем приложении для Android.

Код в ViewModel не изменился с тех пор, как в этом вся идея MVVM. Но код BackhoffActuatorView отличается для Android:

public class BeckhoffActuatorView : MvxBindingActivityView<BeckhoffSensorViewModel>
{
    public ICollection<string> icol;

    public BeckhoffActuatorView()
    {
        Debug.WriteLine("Standard");
    }

    public BeckhoffActuatorView(MvxShowViewModelRequest request)
    {
        Debug.WriteLine("Custom");

        icol = request.ParameterValues.Values;
    }

    protected override void OnViewModelSet()
    {

        SetContentView(Resource.Layout.BeckhoffActuatorView);

    }
}

Приведенный выше код не работает, MvxBindingActivityView, похоже, не реализует что-то похожее на ViewController, который я использую в IOS. Код входит только в стандартный конструктор, и когда я полностью оставляю его, он не будет компилироваться/запускаться.

Кто-нибудь знает, что я могу получить доступ к паре ключ-значение, которую я отправляю с помощью RequestNavigate? Спасибо!

8
задан Askolein 12 January 2013 в 15:22
поделиться