如何从 mvvmcross 中的视图更新 ViewModel
How to update ViewModel from View in mvvmcross
我想从 mvvmcross 中的视图更新 ViewModel,我可以更新它吗?我试过 Messenger 插件,但对我没用。
您可以使用视图的 ViewModel
属性 并将其转换为您的 ViewModel 类型。之后您可以访问您想要执行或更改的所有内容。
一个使用 Droid 和 Core 项目的非常简单的例子是:
主视图
using Android.App;
using Android.OS;
using Cirrious.MvvmCross.Droid.Views;
using Core.ViewModels;
namespace Droid.Views
{
[Activity]
public class MainView : MvxActivity
{
protected MainViewModel MainViewModel
{
get { return ViewModel as MainViewModel; }
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.main_view);
MainViewModel.ChangePropertyToEmpty();
}
}
}
然后是我们的 ViewModel:
using Cirrious.MvvmCross.ViewModels;
namespace Core.ViewModels
{
public class MainViewModel : MvxViewModel
{
#region TestProperty
private string _testProperty;
public string TestProperty
{
get { return _testProperty; }
set { SetProperty(ref _testProperty, value); }
}
#endregion
public void ChangePropertyToEmpty()
{
TestProperty = string.Empty;
}
}
}
另一种方法是在视图中对其进行类型转换 class。
MainViewModel model= (MainViewModel)this.ViewModel;
model.ChangePropertyEmpty()
我想从 mvvmcross 中的视图更新 ViewModel,我可以更新它吗?我试过 Messenger 插件,但对我没用。
您可以使用视图的 ViewModel
属性 并将其转换为您的 ViewModel 类型。之后您可以访问您想要执行或更改的所有内容。
一个使用 Droid 和 Core 项目的非常简单的例子是:
主视图
using Android.App;
using Android.OS;
using Cirrious.MvvmCross.Droid.Views;
using Core.ViewModels;
namespace Droid.Views
{
[Activity]
public class MainView : MvxActivity
{
protected MainViewModel MainViewModel
{
get { return ViewModel as MainViewModel; }
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.main_view);
MainViewModel.ChangePropertyToEmpty();
}
}
}
然后是我们的 ViewModel:
using Cirrious.MvvmCross.ViewModels;
namespace Core.ViewModels
{
public class MainViewModel : MvxViewModel
{
#region TestProperty
private string _testProperty;
public string TestProperty
{
get { return _testProperty; }
set { SetProperty(ref _testProperty, value); }
}
#endregion
public void ChangePropertyToEmpty()
{
TestProperty = string.Empty;
}
}
}
另一种方法是在视图中对其进行类型转换 class。
MainViewModel model= (MainViewModel)this.ViewModel;
model.ChangePropertyEmpty()