在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的代码中,我使用了上述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
}
}
这个构造在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似乎没有实现与我在IOS中使用的ViewController类似的东西。 代码仅在标准构造函数中出现,并且当我完全省略它时,它无法编译/运行。
有人知道我如何访问使用RequestNavigate发送的键值对吗?谢谢!