私はコンボボックスをイメージとテキストとして表示されるアイテムがほとんどありません(アイテムごとに並べて配置)。今私はコンボボックスのリストからアイテムを選択するときに、別のテキストや別の画像をコンボボックスのselecteditemエリアに置いて、別のもの(同じ画像とテキストではなく)を表示したいと思う。WPFコンボボックス選択したアイテム
私はそれを達成する方法がありますか?
私はコンボボックスをイメージとテキストとして表示されるアイテムがほとんどありません(アイテムごとに並べて配置)。今私はコンボボックスのリストからアイテムを選択するときに、別のテキストや別の画像をコンボボックスのselecteditemエリアに置いて、別のもの(同じ画像とテキストではなく)を表示したいと思う。WPFコンボボックス選択したアイテム
私はそれを達成する方法がありますか?
複数の可能な方法があり、そのうちの1つはDataTemplates and Data template selectorsです。
最も簡単な方法は、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>
** Setter **の** TargetName **は本当に** selectedVisuals **を読みますか? ** regularVisuals **であるべきではないですか? – Mizipzor
あなたは正しいです@mizipzorそれを指摘していただきありがとうございます、 –
私は彼がコンボボックスが折りたたまれているとのSelectedItemは、コンボボックスに表示されappearenceのwhentを変更したいです。 – deepak