1
       <DataTemplate x:Key="pushpinSelector">
        <my:Pushpin Location="{Binding Location}" CacheMode="BitmapCache">
            <my:Pushpin.Template>
                <ControlTemplate>
                    <clusterer:PushpinTemplateSelector Content="{Binding}">
                        <clusterer:PushpinTemplateSelector.ClusterTemplate>
                            <DataTemplate>
                                <Grid VerticalAlignment="Center" HorizontalAlignment="Center" CacheMode="BitmapCache">
                                    <Image Source="{Binding ImagePath}" Width="50" Height="50"></Image>
                                    <TextBlock Foreground="Red" Text="{Binding ClusterCount}" HorizontalAlignment="Center" VerticalAlignment="Top"></TextBlock>
                                </Grid>
                            </DataTemplate>
                        </clusterer:PushpinTemplateSelector.ClusterTemplate>                            
                    </clusterer:PushpinTemplateSelector>
                </ControlTemplate>
            </my:Pushpin.Template>
        </my:Pushpin>
    </DataTemplate>

var doc = XDocument.Load("PushpinClusteringExample;component/jugglingclubs.xml");

        var pins = doc.Descendants("club")
            // get clubs with coordinates
                      .Where(club => club.Descendants("coordinates").Any())
                      .Select(el => new
                      {
                          lat = double.Parse(el.Descendants("latitude").Single().Value),
                          lon = double.Parse(el.Descendants("longitude").Single().Value),
                          name = el.Descendants("name").Single().Value,
                          country = el.Descendants("country").Single().Value,
                          //address = el.Descendants("address").Single().Value
                      })
            // verify the coordinates are sensible!
                      .Where(coord => coord.lat < 90 && coord.lat > -90 && coord.lon < 90 && coord.lon > -90)
            // create a pushpin for each club
                      .Select(i => new MyGeoObject()
                      {
                          Coordinate = new GeoCoordinate(i.lat, i.lon),
                          Name = i.name,
                          Country = i.country,                              
                          //Address = i.address
                      }).ToList();
        for (int j = 0; j < pins.Count; j++)
        {
            if (pins[j].Country == "United Kingdom")
            {

                List<ImageData> dataSource = new List<ImageData>()
                { 
                    new ImageData(){ImagePath="/MapPin.png"},                    
                };
                //Icon = new BitmapImage(new Uri("/MapPin.png", UriKind.Relative));
                DataContext = this;
            }
            else
            {
                List<ImageData> dataSource = new List<ImageData>() 
                { 
                new ImageData(){ImagePath="/DrawingPin1_Blue.png"},
                };
                //Icon = new BitmapImage(new Uri("/DrawingPin1_Blue.png", UriKind.Relative));
                DataContext = this;
            }                
        }

       var clusterer = new PushpinClusterer<MyGeoObject>(map1, pins, 50);
       pushPinModelsLayer.DataContext = clusterer;

我正在尝试将 ImagePath 绑定到 Image 控件源,但 Image 没有被绑定......我在这里感到震惊......我做错了什么??????请帮助我走得更远

谢谢

4

0 回答 0