Xamarin 如何更新自定义渲染贴图?

Xamarin 如何更新自定义渲染贴图?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我在我的共享项目中创建了一个CustomMap,扩展自Xamarin.Forms.Maps.Map 我还为iOS和Android创建了自定义渲染器。问题是:我正在尝试更新用户与目的地相关的位置,因此我需要使用Google提供的新多段线更新该地图。但我不知道怎么做 我曾考虑在CustomMap类中创建一个方法以在渲染器中重写,但渲染器仅将CustomMap类用作ExportRenderer类型,该类本身派生自MapRenderer 如何从CustomMap类控制此更新?通过共享项目代码,我可以执行

我在我的共享项目中创建了一个CustomMap,扩展自
Xamarin.Forms.Maps.Map

我还为iOS和Android创建了自定义渲染器。问题是:我正在尝试更新用户与目的地相关的位置,因此我需要使用Google提供的新多段线更新该地图。但我不知道怎么做

我曾考虑在CustomMap类中创建一个方法以在渲染器中重写,但渲染器仅将CustomMap类用作ExportRenderer类型,该类本身派生自MapRenderer

如何从CustomMap类控制此更新?通过共享项目代码,我可以执行
CustomMap.Update(新多段线)

项目结构:

  • 解决方案
    • 共享项目
      • CustomMap:Xamarin.Forms.Maps.Map
    • iOS项目
      • CustomMapRenderer:Xamarin.Forms.Maps.iOS.MapRenderer
    • 安卓项目
      • CustomMapRenderer:Xamarin.Forms.Maps.Android.MapRenderer
在CustomMap.cs中:

公共静态BindableProperty TestProperty=BindableProperty.Create( propertyName:“测试”, returnType:typeof(字符串), declaringType:typeof(CustomMap), 默认值:“测试”, defaultBindingMode:BindingMode.OneWay, 更改的属性:HandleTestChanged); 公共字符串测试 { 获取{return(string)GetValue(TestProperty);} set{SetValue(TestProperty,value);} } 私有静态void HandleteTChanged(BindableObject bindable、object oldValue、object newValue) { var customMap=(customMap)可绑定; //做一些有新价值的事情 } 然后在渲染器中:

var customMap=(customMap)元素;
var test=customMap.test;

谢谢您的回复。我需要调用一个方法,比如Update,然后该调用将在我的渲染器中触发路由的重画。我可以对可绑定属性使用相同的方法吗?谢谢您可以使用可绑定属性,或者创建一个使用事件处理程序的方法(在渲染器构造函数中订阅它们)。我在CustomMap类中创建了该属性,但是如果该属性已更改,如何签入渲染器?谢谢