我正在尝试使用 Bing Map SDK 和控件将地图添加到 Windows 8 Store 应用程序。使用这组 Xaml:
<Page.Resources>
<DataTemplate x:Key="LogoTemplate">
<m:Pushpin m:MapLayer.Position="{Binding Item2}" Text="{Binding Item1}"/>
</DataTemplate>
</Page.Resources>
...
<m:Map Credentials="{StaticResource BingMapsApiKey}" ZoomLevel="12" HomeRegion="US" Heading="2">
<m:MapItemsControl x:Name="ListOfItems"
ItemTemplate="{StaticResource LogoTemplate}"
ItemsSource="{Binding LocationList}">
</m:MapItemsControl>
</m:Map>
绑定到视图模型的这个属性:
public IEnumerable<Tuple<string, Bing.Maps.Location>> LocationList
{
get
{
if (MapLocation != null)
{
return new List<Tuple<string, Bing.Maps.Location>>
{
new Tuple<string, Bing.Maps.Location>("1", new Bing.Maps.Location(MapLocation.lat, MapLocation.lng))
};
}
return Enumerable.Empty<Tuple<string, Bing.Maps.Location>>();
}
}
HResult
它始终与Bing 地图中的 COM 组件中的 E_FAIL 不同。在调试器输出窗口中显示此消息:
WinRT information: Failed to assign to property 'Bing.Maps.MapLayer.Position'
纬度和经度是有效点。我很难过,看不出有什么不同的做法。互联网上关于 Bing Maps 控件的 App Store 版本的信息非常少,所以我希望有人能让它工作。