从 ViewModel MVVM Xamarin 上的 CustomMap 访问 x:Name
Acces x:Name from CustomMap on ViewModel MVVM Xamarin
我制作了一个 CustomMap,如果我将我的代码放在 xaml.cs 中,它可以正常工作,但我正在使用 MVVM 模式。
<ContentPage.Content>
<local:CustomMap x:Name="customMap" MapType="Street" />
</ContentPage.Content>
我需要在我的 ViewModel 上访问 x:Name 才能执行此操作,例如:
var pin = new CustomPin
{
Type = PinType.Place,
Position = new Position(37.0990243, -7.9982581),
Label = "Xamarin San Francisco Office",
Address = "394 Pacific Ave, San Francisco CA",
Name = "Xamarin",
Url = "http://xamarin.com/about/",
};
customMap.CustomPins = new List<CustomPin> { pin };
customMap.Pins.Add(pin);
customMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(37.0990243, -7.9982581),
Distance.FromMiles(150)));
我找到了解决方案:
在 Xaml 上:
<ContentPage.Content>
<ContentView Content="{Binding customMap}"/>
</ContentPage.Content>
在 ViewModel 上:
public CustomMap customMap { get; private set; }
在 ViewModel 构造函数上:
customMap = new CustomMap();
customMap.MapType = MapType.Street;
我制作了一个 CustomMap,如果我将我的代码放在 xaml.cs 中,它可以正常工作,但我正在使用 MVVM 模式。
<ContentPage.Content>
<local:CustomMap x:Name="customMap" MapType="Street" />
</ContentPage.Content>
我需要在我的 ViewModel 上访问 x:Name 才能执行此操作,例如:
var pin = new CustomPin
{
Type = PinType.Place,
Position = new Position(37.0990243, -7.9982581),
Label = "Xamarin San Francisco Office",
Address = "394 Pacific Ave, San Francisco CA",
Name = "Xamarin",
Url = "http://xamarin.com/about/",
};
customMap.CustomPins = new List<CustomPin> { pin };
customMap.Pins.Add(pin);
customMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(37.0990243, -7.9982581),
Distance.FromMiles(150)));
我找到了解决方案:
在 Xaml 上:
<ContentPage.Content>
<ContentView Content="{Binding customMap}"/>
</ContentPage.Content>
在 ViewModel 上:
public CustomMap customMap { get; private set; }
在 ViewModel 构造函数上:
customMap = new CustomMap();
customMap.MapType = MapType.Street;