在与我的问题中的链接的作者讨论之后,代码确实可以通过一个小的调整和对我的 View 类的名称进行更正以符合 mvvmcross 约定。
我的视图被错误地命名为 SomethingViewController 而不是 SomethingView。
Greg 的代码在当前 MVX v3 代码库上工作的更改是将他的示例从:
public abstract class SubViewModelBase<TResult> : ViewModelBase
{
protected string MessageId { get; private set; }
protected SubViewModelBase(string messageId)
{
MessageId = messageId;
}
....
}
至:
public abstract class SubViewModelBase<TResult> : ViewModelBase
{
protected string MessageId { get; private set; }
public virtual void Init(string messageId){
this.MessageId = messageId;
}
}
当然在你的子模型中使用
public abstract class MySomeModel : SubViewModelBase<YourReturnType>
{
public override void Init(string messageId, other.. parameters..){
base.Init(messageId);
.. your other parameters init here..
}
}