C1VectorLayer には、データ連結をサポートする2つのプロパティがあります。
ItemsSource – ソースオブジェクトのコレクションを指定します。
ItemTemplate – レイヤ上の各オブジェクトの外観を指定します。項目テンプレートでは、C1VectorItemBase を継承するクラスを定義する必要があります。
City オブジェクトのコレクションがあるとします。
C# |
コードのコピー
|
---|---|
public class City { public Point LongLat { get; set; } public string Name { get; set; } } |
このテンプレートは、City クラスから C1VectorPlacemark を作成する方法を定義します。
XAML |
コードのコピー
|
---|---|
<c1:C1Maps x:Name="maps" Foreground="LightGreen"> <c1:C1Maps.Resources> <!-- 項目テンプレート --!> <DataTemplate x:Key="templPts"> <c1:C1VectorPlacemark GeoPoint="{Binding Path=LongLat}" Fill="LightGreen" Stroke="DarkGreen" Label="{Binding Path=Name}" LabelPosition="Top" > <c1:C1VectorPlacemark.Geometry> <EllipseGeometry RadiusX="2" RadiusY="2" /> </c1:C1VectorPlacemark.Geometry> </c1:C1VectorPlacemark> </DataTemplate> </c1:C1Maps.Resources> <c1:C1VectorLayer ItemsSource="{Binding}" ItemTemplate="{StaticResource templPts}" /> </c1:C1Maps> |
最後に、データソースとして実際のコレクションを使用する必要があります。
C# |
コードのコピー
|
---|---|
City[] cities = new City[] { new City(){ LongLat= new Point(30.32,59.93), Name="Saint Petersburg"}, new City(){ LongLat= new Point(24.94,60.17), Name="Helsinki"}, new City(){ LongLat= new Point(18.07,59.33), Name="Stockholm"}, new City(){ LongLat= new Point(10.75,59.91), Name="Oslo"}, new City(){ LongLat= new Point(12.58,55.67), Name="Copenhagen"} }; maps.DataContext = cities; |