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 がバインド可能でないかどうか疑問に思い始めていますが、それはばかげていると思います。助けてください
前もって感謝します