2011-09-14 9 views
2

これはおそらく単純なものですが、私は現時点で私の髪を裂いています。カスタムプッシュピンとテンプレート画像

モデルからマップ上にプッシュピンを表示したいとします。だから私は、次のように次にバインドさコレクションにそれを使用する画鋲

<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をお勧めします今、私は、これはすべてが

答えて

2

を働くだけのControlTemplate

<ControlTemplate x:Key="PushpinTemplate" TargetType="m:Pushpin"> 
    <Grid x:Name="ContentGrid" Width="32" Height="32" Margin="0"> 
     <Image Source="{Binding ImageUri}" Stretch="Fill"/> 
    </Grid> 
</ControlTemplate> 

を結合を追加する方法の私uinderstandingとグリップを取得しようとしています推測しますコンバータを使用するのではなく、表示する画像。しかし、コンバーターも動作しますが、バインディングは同じ方法で行われます。

+0

ここでは、プロパティとしてImageUriを持つPushpinCollectionアイテムにプロパティを追加する必要があると思いますか?私のコードはここで誤解されています。 "PushpinCollection"は実際には異なるモデルのものであり、エンティティ(場所、型など)に関するデータですが、それ自体は画像がありません。私はここでtypeプロパティから追加したいと思っていました(したがってコンバーターを使用しています)。私は、複製データとして別々のプッシュピン配列を必要としませんでした。しかし、それは私が代わりにそれを見なければならない方法でしょうか? – Firedragon

+0

@claus オリジナルのControlTemplateはどこから入手できますか?私は3D効果を失うことなく画像を変更する必要があります。私は元のテンプレートが私に何が欠けているかを私に見せてくれることを望んでいました。 –

関連する問題