0

BingMapSDKとコントロールを使用してWindows8ストアアプリにマップを追加しようとしています。この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>>();
    }
}

HResultBingマップのCOMコンポーネントからのE_FAILを除いて一貫して。デバッガーの出力ウィンドウに次のメッセージが表示されます。

WinRT information: Failed to assign to property 'Bing.Maps.MapLayer.Position'

LatとLongは有効なポイントです。私は困惑していて、他に何もすることができません。インターウェブには、AppStoreバージョンのBingMapsコントロールに関する情報がほとんどないため、誰かがこれを機能させることを望んでいます。

4

2 に答える 2

0

MapLayer.PositionLocationオブジェクトにデータ バインドすることは単純に不可能ですが、Latitudeとをデータ バインドすることはできますLongitude

<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 に答える
0

他の誰かがこの問題を抱えている場合 (または、このコントロールの Windows ストア バージョンを MVVM モデルに統合する際に問題が発生した場合) に備えて、バインド可能なバージョンでコントロールをラップすることが解決策のようです。これまでのところ、このコード形式のコードプレックスを使用して、ある程度の成功を収めています。

于 2012-11-17T21:28:55.510 に答える