0

名前、評価など、さまざまな場所を示す Windows Phone の画鋲を作成しようとしています。MSDN、Stack Overflow、およびその他のサイトでこれに対する解決策を検索しましたが、部分的な回答しか見つかりませんでした。

これが私の現在の試みです。まったく機能しません。プッシュピンは作成されますが、グリッドやその他の要素を表示するようには変更されていません。代わりに、マップの左上に空白の画鋲が表示されます。

<mi:Map x:Name="map" Margin="-12,0" d:LayoutOverrides="Width" CredentialsProvider="Something else goes here :)">
   <mi:MapItemsControl ItemsSource="{Binding Pushpins}">
      <mi:MapItemsControl.ItemTemplate>
         <DataTemplate>
            <mi:Pushpin Location="{Binding Location}">
               <Grid Background="{Binding Background}">
                  <TextBlock Text="{Binding Name}" Margin="6,0"/>
                  <ProgressBar Maximum="5" Value="{Binding Rating}"/>
               </Grid>
             </mi:Pushpin>
          </DataTemplate>
       </mi:MapItemsControl.ItemTemplate>
    </mi:MapItemsControl>
 </mi:Map>

上記のコードまたはそのようなものを機能させるにはどうすればよいですか?

私の以前の解決策は、コードを使用して要素を作成することでした。問題は、いくつかのピンを超えると乱雑になり、他の情報 (ストア URL など) を取得するために簡単に使用できなかったことです。

編集:すべての背後にあるコードに関するいくつかの追加情報。

public struct PushpinModel
{
    public GeoCoordinate Location { get; set; }
    public string Name { get; set; }
    public string Url { get; set; }
    public float Rating { get; set; }
    public Brush Background { get; set; }
}

これらの画鋲モデルは、AddPin メソッドを使用して画鋲の観察可能なコレクションに追加されます。

public void AddPin(GeoCoordinate coord, string Title, string url, float rating, Brush background)
{
    Pushpins.Add(new PushpinModel { Location = coord, Name = Title, Rating = rating, Url = url, Background = background} );
}

私の GeoCoordinateWatcher は、位置が変更されると watcher_PositionChanged イベントを呼び出します。これにより、ユーザーの場所に画鋲が追加されます。

現在 ZoomToUser() 関数が呼び出されていますが、画鋲が表示されていません。

4

1 に答える 1

3

これは間違っているようです

 <mi:MapItemsControl ItemsSource="Pushpins">

それがデータコンテキストのプロパティである場合、それはそうあるべきです

 <mi:MapItemsControl ItemsSource="{Binding Pushpins}">
于 2012-07-03T10:51:29.857 に答える