我在Xamarin.Forms.Maps.Map
扩展的共享项目中创建了一个CustomMap。
我还为iOS和Android创建了自定义渲染器。问题是:我尝试更新用户与目标相关的位置,因此我需要使用Google的新折线更新该地图。但我不知道如何。
我考虑在我的CustomMap类中创建一个方法,以便在我的渲染器中重写,但渲染器只使用我的CustomMap类作为ExportRenderer类型,该类本身派生自MapRenderer。
如何从CustomMap类控制此更新?从我的共享项目代码那里我可以做CustomMap.Update(new Polylines)
项目结构:
答案 0 :(得分:1)
在CustomMap.cs中:
public static BindableProperty TestProperty = BindableProperty.Create(
propertyName: "Test",
returnType: typeof(string),
declaringType: typeof(CustomMap),
defaultValue: "test",
defaultBindingMode: BindingMode.OneWay,
propertyChanged: HandleTestChanged);
public string Test
{
get { return (string)GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
private static void HandleTestChanged(BindableObject bindable, object oldValue, object newValue)
{
var customMap = (CustomMap)bindable;
// do something with new value
}
然后在你的渲染器中:
var customMap = (CustomMap)Element;
var test = customMap.Test;