0

我正在尝试使用 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 版本的信息非常少,所以我希望有人能让它工作。

4

2 回答 2

0

以防万一其他人遇到此问题(或者在将此控件的 Windows 存储版本集成到 MVVM 模型时遇到困难),看起来解决方案是将控件包装在可绑定版本中。到目前为止,我使用了这个代码形式的 codeplex并取得了一些成功。

于 2012-11-17T21:28:55.510 回答
0

根本不可能将数据绑定MapLayer.PositionLocation对象,但您可以数据绑定LatitudeLongitude

<m:Pushpin Text="{Binding Item1}"/>
    <m:MapLayer.Position>
        <m:Location Latitude="{Binding Item2.Latitude}" Longitude="{Binding Item2.Longitude}" />
    </m:MapLayer.Position>
</m:Pushpin>
于 2014-10-26T10:36:30.290 回答