在过去的几周里,我一直在使用MVVMCross框架开发跨平台应用程序(IOS/Android/WP7).今天我遇到了一个我真不知道如何解决的问题,所以希望你能把我推向正确的方向.
在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));
}
}
Run Code Online (Sandbox Code Playgroud)
当触发此IMvxCommand(按下按钮)时,将加载下一个View,在本例中为BeckhoffActuatorViewModel.在BeckhoffActuatorView的代码中,我使用上面的keyvaluepair:
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
}
}
Run Code Online (Sandbox Code Playgroud)
这种结构在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 …Run Code Online (Sandbox Code Playgroud)