1
我遵循了N + 1天的示例,並構建了一個顯示中心座標的地圖應用程序。該值是雙向綁定的,因此移動地圖也會更改該值。現在我想綁定縮放級別,但由於未知的原因,該值只能被初始化,而沒有更新。仔細檢查我發現viewmodel中ZoomLevel屬性的「Set」部分只被調用一次。Mvvmcross Android谷歌地圖,無法綁定縮放級別
下面是一些代碼snipplet:
在模型視圖我有這樣的特性:
private float _zoomLevel;
public float ZoomLevel {
get { return _zoomLevel; }
set {
_zoomLevel = value;
RaisePropertyChanged(() => ZoomLevel);
}
}
在MyMapFragment,我有性能中心和縮放級別,看起來不太一樣:
private LatLng _center;
public LatLng Center{
get { return _center; }
set {
_center = value;
var center = CameraUpdateFactory.NewLatLngZoom(value, ZoomLevel);
Map.MoveCamera(center);
}
}
private float _zoomLevel;
public float ZoomLevel{
get { return _zoomLevel; }
set {
_zoomLevel = value;
var zoom = CameraUpdateFactory.NewLatLngZoom(Center, value);
Map.MoveCamera(zoom);
}
}
而在CreateBinding()方法中,我有:
var set = this.CreateBindingSet<MyMapFragment, CityGuideMapViewModel>();
set.Bind(this).For(v => v.Center).To(vm => vm.Center).WithConversion(new LocationToLatLngValueConverter(), null);
set.Bind(this).For(v => v.ZoomLevel).To(vm => vm.ZoomLevel);
set.Apply();
有什麼我失蹤?非常感謝!
甜!有用!非常感謝! – 2014-09-02 10:22:22