0

Windows Phone 8 で Nokia Maps コントロールを使用しています。現在のコードは次のとおりです (関連部分のみ)。

C#

public ObservableCollection<LocationViewModel> ItemLocations
    {
        get
        {
            return new ObservableCollection<LocationViewModel>()
                {
                    new LocationViewModel()
                        {
                            Display = "MVVM Test",
                            Location = new GeoCoordinate(43.07441, -88.25609)
                        }
                };
        }
    }

XAML:

<maps:Map Center="{Binding MapCenter, Mode=TwoWay}"
              ZoomLevel="{Binding ZoomLevel}">
        <maptk:MapExtensions.Children>
            <maptk:MapItemsControl ItemsSource="{Binding Path=ItemLocations}">
                <maptk:MapItemsControl.ItemTemplate>
                    <DataTemplate>
                        <maptk:Pushpin GeoCoordinate="{Binding Location}" Content="{Binding Display}" />
                    </DataTemplate>
                </maptk:MapItemsControl.ItemTemplate>
            </maptk:MapItemsControl>
        </maptk:MapExtensions.Children>
    </maps:Map>

現在、マップ ページが読み込まれると、正しい場所が中心になりますが、ItemLocations リストをどのように処理しても、マップにポイントが表示されません。私は先に進み、いくつかの静的ポイントを使用して maptk:MapItemsControl.Items を静的に定義しましたが、正常に機能しました。失敗したのは、バインディング (上記を参照) を試みたときだけです。

このソリューションでは、MVVM に Caliburn Micro を利用しています。上記のサンプルでわかるように、ViewModel でロケーション リストをハード コーディングしましたが、getが呼び出されないのが不思議です。PushPins を MapExtensions.Children の子として定義するだけで機能します。

ItemsSource がバインド可能でないかどうか疑問に思い始めていますが、それはばかげていると思います。助けてください

前もって感謝します

4

1 に答える 1

2

私はあなたと同じ問題を抱えていて、解決するのに時間がかかりました。このMVVM Windows Phone 8 を確認してください - 画鋲のコレクションをマップに追加すると、これも役立つかもしれません。

于 2013-05-08T13:16:13.693 に答える