【问题标题】:How to display a DataBound Pushpin on Windows Phone如何在 Windows Phone 上显示 DataBound Pushpin
【发布时间】:2012-07-04 00:57:44
【问题描述】:

我正在尝试在 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() 函数,但图钉未出现。

【问题讨论】:

  • 一切看起来都不错,除了....什么是图钉?您是否打算放置 {Binding Pushpoints}
  • Pushpins 是我的 PushpinModel 类的 ObservableCollection,它存储了您以后看到的所有内容的成员。

标签: c# windows-phone-7 bing-maps


【解决方案1】:

这看起来不对

 <mi:MapItemsControl ItemsSource="Pushpins">

如果它是数据上下文的属性,它应该是

 <mi:MapItemsControl ItemsSource="{Binding Pushpins}">

【讨论】:

  • 更改为上面的内容会删除左上角的图钉,但它不会显示网格、文本块或进度条。事实上,它什么也没显示。你知道这是什么原因造成的吗?
  • 啊,我修好了。你上面提到的我的 ItemsSource 没有工作。在代码中设置它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
相关资源
最近更新 更多