Cheesebaron .
, Ninja Coder VS Extension, Xam.Forms + MvvmCross .
Cheesebaron. ContentPages ( , ).
MvvmCross Messenger PlugIn. , , , ..
Cheesebaron MvxPresenterHelper ViewModels ContentPages. IoC MvvmCross (Mvx) , .
Helper IQ MvvmCross. . , , , .
MvxPresenterHelper.cs
public static ContentPage CreatePage(MvxViewModelRequest request)
{
var viewModelName = request.ViewModelType.Name;
var pageName = viewModelName.Replace("ViewModel", "Page");
Type pageType = Type.GetType(App.PageNamespace + "." + pageName);
if (pageType == null)
{
Mvx.Trace("Page not found for {0}", pageName);
return null;
}
var page = Mvx.Resolve(pageType) as ContentPage;
if (page == null)
{
Mvx.Error("Failed to create ContentPage {0}", pageName);
}
return page;
}
App.PageNamespace. ContentPages.
App.cs
public class App : MvxApplication
{
public static string PageNamespace { get; private set; }
public App()
{
PageNamespace = this.GetType().Namespace + ".Pages";
}
public override void Initialize()
{
this.CreatableTypes()
.EndingWith("Page")
.InNamespace(PageNamespace)
.AsTypes()
.RegisterAsDynamic();
this.RegisterAppStart<MainViewModel>();
}
}