MarkerClick有效,但InfoWindowClick无法打开ViewModel

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)

Pet*_*ter 1

In onCreate、 putmViewModel.getLiveData().observe(this, new Observer<List<YOUR STUFF>>(){ 和 in the .observeputinit()方法,这对我有用