我有一个组合框,其中几个项目显示为图像和文本(每个项目并排放置)。现在,当我从组合框列表中选择一个项目时,我希望在Combobox选择区域上显示其他内容(而不是相同的图像和文本)或另一个文本或其他图像。
有没有办法实现它。
答案 0 :(得分:2)
最简单的方法是将一个IsSelected Trigger添加到Combobox的DataTemplate(Itemstemplate)中,我认为你有两组Visual元素,一组用于常规数据显示,另一组用于选择的视觉效果,当IsSelected属性设置在你需要的ComboboxItem使常规视觉效果隐藏,另一个显示。这里的真正诀窍是找到使用FindAncestor选择的直接 ComboBoxItem 用户。
<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>
答案 1 :(得分:0)
有几种可能的方法,其中一种方法是使用DataTemplates and Data template selectors。