cas*_*las 24 android google-maps xamarin.android mvvmcross xamarin
以下MarkerClick实现工作,非常好.我可以打开其他View viaShowViewModel
View.cs
mMap.MarkerClick += MMap_MarkerClick;
private void MMap_MarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
{
ViewModel.MapInfoSelected(e.Marker.Title);
}
Run Code Online (Sandbox Code Playgroud)
ViewModel.cs
public void MapInfoSelected(string name)
{
ShowViewModel<StudentViewModel>(new { studentName = name});
}
Run Code Online (Sandbox Code Playgroud)
InfoWindowClick 不会触发打开其他视图.
View.cs
mMap.InfoWindowClick += MMap_InfoWindowClick;
private void MMap_InfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e)
{
ViewModel.MapInfoSelected(e.Marker.Title);
}
Run Code Online (Sandbox Code Playgroud)
ViewModel.cs
public void MapInfoSelected(string name)
{
// it hits here, but does not hit `StudentViewModel` Init() method, the app is frozen and do nothing
ShowViewModel<StudentViewModel>(new { studentName = name});
}
Run Code Online (Sandbox Code Playgroud)
我甚至尝试了SetOnInfoWindowClickListener如下,它也没有打开视图.
mMap.SetOnInfoWindowClickListener(this);
public void OnInfoWindowClick(Marker marker)
{
ViewModel.MapInfoSelected(marker.Title);
}
Run Code Online (Sandbox Code Playgroud)
更新:
它甚至命中了该OnPause()方法,但StudentViewModel如果我使用InfoWindowClickevent ,它仍然不会调用Init()方法
public override void OnPause()
{
base.OnPause();
mMap.InfoWindowClick -= MMap_InfoWindowClick;
}
Run Code Online (Sandbox Code Playgroud)
In onCreate、 putmViewModel.getLiveData().observe(this, new Observer<List<YOUR STUFF>>(){ 和 in the .observeputinit()方法,这对我有用
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |