Как привязать несколько (n) полигонов к элементам управления Bing Map - PullRequest
2 голосов
/ 24 октября 2011

Мне нужна возможность привязать коллекцию экземпляров LocationCollection к элементу управления Bing Maps в WP7 (Silverlight).Я могу связать один экземпляр многоугольника, используя следующий XAML:

<Microsoft_Phone_Controls_Maps:MapLayer.Children>

    <Microsoft_Phone_Controls_Maps:MapPolygon Locations="{Binding Polygon}"
                                                          Fill="{StaticResource PolygonFillBrush}"
                                                           Stroke="{StaticResource PolygonStrokeBrush}"
                                                           StrokeThickness="4"
                                                           Opacity="1">
    </Microsoft_Phone_Controls_Maps:MapPolygon>

</Microsoft_Phone_Controls_Maps:MapLayer.Children>

Это привязало одну LocationCollection с использованием свойства Polygon в ViewModel.Я хочу иметь возможность привязать ObservableCollection к MapLayer, чтобы я мог нарисовать столько полигонов, сколько требуется.

Я могу сделать это в коде (с выделенным кодом), но я бы предпочел объявить это в XAML,это возможно?

1 Ответ

2 голосов
/ 24 октября 2011

Просто используйте MapItemsControl (В этом примере xmlns: maps = Microsoft_Phone_Controls_Maps)

<maps:MapItemsControl ItemsSource="{Binding Polygons}">
    <maps:MapItemsControl.ItemTemplate>
        <DataTemplate>
            <maps:MapPolygon Locations="{Binding Polygon}"
                             Fill="{StaticResource PolygonFillBrush}"
                             Stroke="{StaticResource PolygonStrokeBrush}"
                             StrokeThickness="4"
                             Opacity="1" />
        </DataTemplate>
    </maps:MapItemsControl.ItemTemplate>
</maps:MapItemsControl>
...