我想从mvvmcross中的视图更新ViewModel,我可以更新吗?我曾尝试使用信使,但它对我没用.
你可以做的是你可以使用View的ViewModel属性并将其转换为你的ViewModel类型.之后,您可以访问要执行或更改的所有内容.
使用Droid和Core项目的一个非常简单的例子是:
的MainView
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我们的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;
}
}
}
Run Code Online (Sandbox Code Playgroud)