これはおそらく単純なものですが、私は現時点で私の髪を裂いています。カスタムプッシュピンとテンプレート画像
モデルからマップ上にプッシュピンを表示したいとします。だから私は、次のように次にバインドさコレクションにそれを使用する画鋲
<ControlTemplate x:Key="PushpinTemplate" TargetType="m:Pushpin">
<Grid x:Name="ContentGrid" Width="32" Height="32" Margin="0">
<Image Source="Resources/Pushpins/img.png" Stretch="Fill"/>
</Grid>
</ControlTemplate>
のテンプレートを作成しました:
<m:MapLayer x:Name="myPushpinLayer">
<m:MapItemsControl x:Name="myPushpins" ItemsSource="{Binding PushpinCollection}">
<m:MapItemsControl.ItemTemplate>
<DataTemplate>
<m:Pushpin Location="{Binding Location}" Template="{StaticResource PushpinTemplate}" />
</DataTemplate>
</m:MapItemsControl.ItemTemplate>
</m:MapItemsControl>
</m:MapLayer>
をしかし、私が行うことができるようにしたいことの結合を介して画像ソースを変更で私はこれをどうやってやっていくのかは分かりません。私がしようとしていたのは、これを行うための最善の方法が変更された場合、コレクション内のIDに応じてコンバータを使用してイメージを変更することでした。
編集:
私はもう少しました:
<m:MapLayer x:Name="myPushpinLayer">
<m:MapItemsControl x:Name="myPushpins" ItemsSource="{Binding PushpinCollection}">
<m:MapItemsControl.ItemTemplate>
<DataTemplate>
<m:Pushpin Location="{Binding Location}"/>
<m:Pushpin.Template>
<ControlTemplate>
<Grid x:Name="ContentGrid" Width="32" Height="32" Margin="0">
<Image Source="{Binding Type,Converter={StaticResource ImageConverter}}" Stretch="Fill"/>
</Grid>
</ControlTemplate>
</m:Pushpin.Template>
</m:Pushpin>
</DataTemplate>
</m:MapItemsControl.ItemTemplate>
</m:MapItemsControl>
</m:MapLayer>
私は</phone:PhoneApplicationPage.Resources>
セクションに画鋲テンプレートを移動した場合、それが失敗しました。なぜ私は分からない。私は何を反映したプロパティ私は(タイプウリの)ImageUriをお勧めします今、私は、これはすべてが
ここでは、プロパティとしてImageUriを持つPushpinCollectionアイテムにプロパティを追加する必要があると思いますか?私のコードはここで誤解されています。 "PushpinCollection"は実際には異なるモデルのものであり、エンティティ(場所、型など)に関するデータですが、それ自体は画像がありません。私はここでtypeプロパティから追加したいと思っていました(したがってコンバーターを使用しています)。私は、複製データとして別々のプッシュピン配列を必要としませんでした。しかし、それは私が代わりにそれを見なければならない方法でしょうか? – Firedragon
@claus オリジナルのControlTemplateはどこから入手できますか?私は3D効果を失うことなく画像を変更する必要があります。私は元のテンプレートが私に何が欠けているかを私に見せてくれることを望んでいました。 –