Ich glaube, es in dieser vorherigen Antwort einige Gremlins sein kann - wird als ein Problem log:/
Es gibt andere mögliche Routen dieser Art von komplexen serializable Objektnavigation noch mit Json und übergeordnete Teile zu erreichen des Frameworks, aber eigentlich denke ich, dass es besser sein könnte, einfach mit eigenen BaseViewModels Serialisierung und Deserialisierung durchzuführen - z verwenden Serialisierungscode wie:
public class BaseViewModel
: MvxViewModel
{
private const string ParameterName = "parameter";
protected void ShowViewModel<TViewModel>(object parameter)
where TViewModel : IMvxViewModel
{
var text = Mvx.Resolve<IMvxJsonConverter>().SerializeObject(parameter);
base.ShowViewModel<TViewModel>(new Dictionary<string, string>()
{
{ParameterName, text}
});
}
}
mit Deserialisierung wie:
public abstract class BaseViewModel<TInit>
: MvxViewModel
{
public void Init(string parameter)
{
var deserialized = Mvx.Resolve<IMvxJsonConverter>().DeserializeObject<TInit>(parameter);
RealInit(deserialized);
}
protected abstract void RealInit(TInit parameter);
}
dann ein Ansichtsmodell wie folgt aus:
public class FirstViewModel
: BaseViewModel
{
public IMvxCommand Go
{
get
{
return new MvxCommand(() =>
{
var parameter = new A()
{
String1 = "Hello",
String2 = "World",
ComplexObject = new B()
{
Double1 = 42.0,
Double2 = -1
}
};
ShowViewModel<SecondViewModel>(parameter);
});
}
}
}
zu so etwas wie navigieren können:
public class SecondViewModel
: BaseViewModel<A>
{
public A A { get; set; }
protected override void RealInit(A parameter)
{
A = parameter;
}
}
konnte ich dieses Problem beheben mvvmcross json-Plugin in meinem uiview Projekt hinzufügen. –