2009-07-24 20 views
2

私はコンボボックスをイメージとテキストとして表示されるアイテムがほとんどありません(アイテムごとに並べて配置)。今私はコンボボックスのリストからアイテムを選択するときに、別のテキストや別の画像をコンボボックスのselecteditemエリアに置いて、別のもの(同じ画像とテキストではなく)を表示したいと思う。WPFコンボボックス選択したアイテム

私はそれを達成する方法がありますか?

+0

私は彼がコンボボックスが折りたたまれているとのSelectedItemは、コンボボックスに表示されappearenceのwhentを変更したいです。 – deepak

答えて

2

最も簡単な方法は、IsSelectedプロパティがオンに設定すると、私は、あなたが選択したビジュアルのビジュアル要素の定期的なデータ表示用と別の2つのグループを持っていると思うコンボボックスのDataTemplateを(Itemstemplate)にIsSelectedトリガーを追加することです通常のビジュアルを非表示にし、他の表示を非表示にするために必要なComboboxItem。ここでの実際のトリックは、即時を見つけることですComboBoxItemユーザーはFindAncestorを使用して選択しました。

<DataTemplate x:Key="yourDataTemplate"> 
<Grid x:Name="regularVisuals" > ... </Grid> 
<Grid x:Name="selectedVisuals" Visibility="Collapsed"> ... </Grid> 
<DataTemplate.Triggers> 
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ComboBoxItem}},Path=IsSelected}" Value="True"> 
     <Setter TargetName="regularVisuals" Property="Visibility" Value="Visible"/> 
     <Setter TargetName="selectedVisuals" Property="Visibility" Value="Collapsed"/> 
    </DataTrigger> 
</DataTemplate.Triggers> 

+0

** Setter **の** TargetName **は本当に** selectedVisuals **を読みますか? ** regularVisuals **であるべきではないですか? – Mizipzor

+0

あなたは正しいです@mizipzorそれを指摘していただきありがとうございます、 –

関連する問題