Xamarin 使用MvvmCross在活动中触发事件
我有一个MvxFragmentActivity,它加载谷歌地图并在地图上放置标记。创建地图和标记的代码非常特定于Droid,因此它在活动中。标记是基于ViewModel中的对象创建的,每个对象都包含lat/long坐标。只要我在Init方法中加载对象,这就可以正常工作。此后,我将LoadObjects方法移动到一个服务,并在另一个线程上调用它。通过这种方式,UI具有响应性。但是,当加载完成时,如何在活动中调用该方法 以下是我在活动中的当前代码(此代码不应更改,只是它的调用方式): 我的viewModel中的代码:Xamarin 使用MvvmCross在活动中触发事件,xamarin,mvvmcross,Xamarin,Mvvmcross,我有一个MvxFragmentActivity,它加载谷歌地图并在地图上放置标记。创建地图和标记的代码非常特定于Droid,因此它在活动中。标记是基于ViewModel中的对象创建的,每个对象都包含lat/long坐标。只要我在Init方法中加载对象,这就可以正常工作。此后,我将LoadObjects方法移动到一个服务,并在另一个线程上调用它。通过这种方式,UI具有响应性。但是,当加载完成时,如何在活动中调用该方法 以下是我在活动中的当前代码(此代码不应更改,只是它的调用方式): 我的viewM
private void BeginLoadItems()
{
_loadItemsService.Load();
}
// This is triggered by a message
private void OnLoadItemsComplete(LoadCompleteMessage message)
{
Items = message.Items;
}
我的服务代码:
public void Load()
{
ThreadPool.QueueUserWorkItem(state =>
{
var results = _repository.Retrieve();
_messenger.Publish(new LoadCompleteMessage(this, results));
});
}
设置以下各项时,您已经触发了一个事件:
Items = message.Items;
这将触发属性名为“Items”的PropertyChanged
有关地图绑定的详细信息,请参见-尽管使用Droid时,您需要使用标记而不是注释。设置以下内容时,您已经触发了一个事件:
Items = message.Items;
这将触发属性名为“Items”的PropertyChanged
有关地图绑定的更多信息,请参见-尽管对于Droid,您需要使用标记而不是注释