に画鋲のコレクションを追加するには、XAMLコードです。 トレックはObservableCollection<PushPinModel>
です。このコードを実行すると、UserLocationMarkerのみが表示されます。これは現在の場所です。MVVMのWindows Phone 8マップここ
6
A
答えて
16
私はついにそれを依存プロパティを使って動作させます。私は、新しいクラスを追加しました:
public static class MapPushPinDependency
{
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.RegisterAttached(
"ItemsSource", typeof(IEnumerable), typeof(MapPushPinDependency),
new PropertyMetadata(OnPushPinPropertyChanged));
private static void OnPushPinPropertyChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
UIElement uie = (UIElement)d;
var pushpin = MapExtensions.GetChildren((Map)uie).OfType<MapItemsControl>().FirstOrDefault();
pushpin.ItemsSource = (IEnumerable)e.NewValue;
}
#region Getters and Setters
public static IEnumerable GetItemsSource(DependencyObject obj)
{
return (IEnumerable)obj.GetValue(ItemsSourceProperty);
}
public static void SetItemsSource(DependencyObject obj, IEnumerable value)
{
obj.SetValue(ItemsSourceProperty, value);
}
#endregion
}
そして、私は
xmlns:dp="clr-namespace:Treks.App.Util.DependencyProperties"
を追加したの.xamlファイルの中に、今の.xamlファイルには、次のようになります。すべての画鋲今
<maps:Map x:Name="NearbyMap"
Center="{Binding MapCenter, Mode=TwoWay}"
ZoomLevel="{Binding ZoomLevel, Mode=TwoWay}"
dp:MapPushPinDependency.ItemsSource="{Binding Path=Treks}"
>
<maptk:MapExtensions.Children>
<maptk:MapItemsControl Name="StoresMapItemsControl">
<maptk:MapItemsControl.ItemTemplate>
<DataTemplate>
<maptk:Pushpin x:Name="PushPins" GeoCoordinate="{Binding Location}" Visibility="Visible" Content="test"/>
</DataTemplate>
</maptk:MapItemsControl.ItemTemplate>
</maptk:MapItemsControl>
<maptk:UserLocationMarker x:Name="UserLocationMarker" Visibility="Visible" GeoCoordinate="{Binding MyLocation}"/>
</maptk:MapExtensions.Children>
</maps:Map>
正しく表示されます。
3
MapItemsControl
は現在MVVMバインド可能ではありません。 あなたのビューのコードの後ろにItemsSource
を設定するのが一番良い方法です。
あなたのViewModelで定義されたコレクションを使用することはできますが、 オプションは次のとおりです。this.StoresMapItemsControl.ItemsSource = ServiceLocator.Current.GetInstance<MainViewModel>().Locations;
:MVVMメッセージングを通じて
- は、ビュー
- の背後にあるコードのコレクションにアクセスするには、ビューのDataContextのを使用するのviewmodelからコレクションに沿ってこのような何かを渡します
関連する問題
- 1. Windows Phone 8 - MVVM ViewModelsとApp.xaml.cs
- 2. Windows Phone 8のGoogleマップAPI 8
- 3. Windows 8&Windows Phone 8
- 4. Windows Phone 7のMVVM
- 5. Windows Phone 8タイルサイズ?
- 6. IsolatedStorage Windows phone 8
- 7. バーコードスキャンのWindows Phone 8
- 8. センサー付きwindows phone mvvm
- 9. Windows phone 8 performance progressbar
- 10. Windows Phone 8 Webbrowserコントロール
- 11. Libgdx for Windows Phone 8
- 12. Windows Phone 8 - プライベートAPI?
- 13. Windows Phone 7 - マップStreetside
- 14. Windows Phone 8とのシリアル通信8
- 15. WindowsのIPアドレスphone 8
- 16. Windows Phone 8 Accelerometerのイベント
- 17. Windows Phone 8のUDPマルチキャストグループ
- 18. Titanium Windows Phone 8 SDKのドキュメント
- 19. Windows Phone 8ネットワーク情報
- 20. Windows Phone 8エミュレータ:ローカルホストにアクセス
- 21. Windows Phone 8 Panorama SelectionChanged&Databinding
- 22. OCR with Windows Phone 8 WP8
- 23. Windows phoneダウンロードsdk 8オフライン
- 24. Windows Phone 8 GeoCoordinateWatcherとGeolocator
- 25. Windows Phone 8プロジェクトでMVVM Lightを使用しようとしたApp.xamlのエラー
- 26. NETFX_COREがWindows 8の場合、Windows Phone 8は何ですか?
- 27. のWindows Phone(8)デフォルトのアプリケーションバーのアイコン
- 28. Windows Phone 8アプリケーションのF#ポータブルライブラリの使用
- 29. Windows phone 8 SDKインストールの問題
- 30. MediaElement Windows Phone 8の速度比
これは私の問題を解決しました。優れたアプローチ – xximjasonxx
ありがとうございました。 – robertk
Page.xaml.csのコードを提供することもできますか?地図アイテムの実際のリストをどのようにバインドできるかはわかりません')を' Map'または 'MapItemsControl'に追加しました。 –