MvvmCross は初めてなので、小さな Xamarin.Forms アプリを作成することにしました。最初に表示されるMainPage.xaml
ViewModelに関連付けられています。MainViewModel.cs
私はFirstView.axml
その活動とともにドロイドプロジェクトにいます。関連付けられた ViewModel は、MainViewModel と並んでコア プロジェクトに配置され、名前が付けられます。FirstViewModel.cs
ナビゲート ボタンをクリックすると、MvvmCross にFirstView.axml
レイアウトが表示され、VM にバインドされます。でも、
コマンドが呼び出されるたびに、私は取得します
03-10 10:11:38.704 D/ViewRootImpl(18964): ViewPostImeInputStage ACTION_DOWN
mvx:Diagnostic: 17,87 Showing ViewModel FirstViewModel
03-10 10:11:38.854 I/mono-stdout(18964): mvx:Diagnostic: 17,87 Showing ViewModel FirstViewModel
[0:] mvx:Diagnostic: 17,87 Showing ViewModel FirstViewModel
mvx:Error: 17,91 Failed to create ContentPage FirstPage
03-10 10:11:38.894 I/mono-stdout(18964): mvx:Error: 17,91 Failed to create ContentPage FirstPage
[0:] mvx:Error: 17,91 Failed to create ContentPage FirstPage
mvx:Error: 17,92 Skipping request for FirstViewModel
03-10 10:11:38.904 I/mono-stdout(18964): mvx:Error: 17,92 Skipping request for FirstViewModel
[0:] mvx:Error: 17,92 Skipping request for FirstViewModel`
現在、プロジェクトは次のようになっています。
スタートアップ活動
[Activity(Label = "Hello MvvmCrossForms", MainLauncher = true)]
public class CrossFormsApp : FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
//Init forms
Forms.Init(this, bundle);
InitialiseMvx();
//Create mvxformsApp
var mvxFormsApp = new MvxFormsApp();
var presenter = Mvx.Resolve<IMvxViewPresenter>() as MvxFormsDroidPagePresenter;
//Assign the viewPresenter
presenter.MvxFormsApp = mvxFormsApp;
LoadApplication(mvxFormsApp);
//Start mvxApp
Mvx.Resolve<IMvxAppStart>().Start();
}
private void InitialiseMvx()
{
if (MvxSingleton<IMvxIoCProvider>.Instance == null)
Mvx.RegisterSingleton(MvxSimpleIoCContainer.Initialize());
MvxAndroidSetupSingleton.EnsureSingletonAvailable(this.ApplicationContext)
.EnsureInitialized();
}
}
MainViewModel
public class MainViewModel : MvxViewModel
{
private string _inputString;
public ICommand NavigateCommand
{
get { return new MvxCommand(() => ShowViewModel<FirstViewModel>()); }
}
public string InputString
{
get { return _inputString; }
set { SetProperty(ref _inputString, value); }
}
}
基本的に私が探しているのは、これの逆です: MvvmCross: Android で通常のビューから Mvvm ビューモデルに移動する方法は?