【发布时间】:2011-09-07 00:22:38
【问题描述】:
将我的物品绑定到 silverlight bing 地图上的图钉上,我真的很头疼。
我花了一整天的时间来整理我的收藏,现在却无法让图钉显示出来。
当您根据下图在最后一行执行断点时,这些项目似乎在那里,所有 143 个项目都在 _PushPins 中:
欢迎任何帮助。非常感谢。
代码如下:
namespace observable_collection_test
{
public partial class Map : PhoneApplicationPage
{
public Map()
{
InitializeComponent();
GetItems();
}
private ObservableCollection<SItem2> pushPins;
public ObservableCollection<SItem2> PushPins
{
get { return this.pushPins; }
set
{
this.pushPins = value;
this.OnPropertyChanged("PushPins");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public void GetItems()
{
var document = XDocument.Load("ListSmall.xml");
if (document.Root == null)
return;
var xmlns = XNamespace.Get("http://www.blah");
var events = from ev in document.Descendants("item")
select new
{
Latitude = Convert.ToDouble(ev.Element(xmlns + "Point").Element(xmlns + "lat").Value),
Longitude = Convert.ToDouble(ev.Element(xmlns + "Point").Element(xmlns + "long").Value),
};
this.PushPins = new ObservableCollection<SItem2>();
foreach (var ev in events)
{
var pushPin = new SItem2(ev.Latitude, ev.Longitude);
//Location = new GeoCoordinate(ev.Latitude, ev.Longitude )
this.PushPins.Add(pushPin);
}
}
其他类:
namespace observable_collection_test
{
public class SItem2
{
public double Latitude
{ get; set; }
public double Longitude
{ get; set; }
public SItem2(double Latitude, double Longitude)
{
this.Latitude = Latitude;
this.Longitude = Longitude;
}
public Location Location { get; set; }
}
}
XAML:
<my:Map ZoomBarVisibility="Visible" ZoomLevel="10" CredentialsProvider="xxxxx" Height="508" HorizontalAlignment="Left" Margin="0,22,0,0" Name="map1" VerticalAlignment="Top" Width="456" ScaleVisibility="Visible">
<my:MapItemsControl ItemsSource="{Binding PushPins}" >
<my:MapItemsControl.ItemTemplate>
<DataTemplate>
<my:Pushpin Background="Aqua" Location="{Binding Location}" ManipulationCompleted="pin_click">
</my:Pushpin></DataTemplate>
</my:MapItemsControl.ItemTemplate>
</my:MapItemsControl>
</my:Map>
【问题讨论】:
标签: c# silverlight windows-phone-7 observablecollection bing-maps