Последние пару недель я работал над разработкой кросс-платформенного приложения (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? Спасибо!