我有一个组合框,其中很少有项目显示为图像和文本(每个项目并排放置)。现在,当我从组合框列表中选择一个项目时,我想在 Combobox selecteditem 区域上显示其他内容(而不是相同的图像和文本)可能是另一个文本或另一个图像。
有没有办法我可以实现它。
我有一个组合框,其中很少有项目显示为图像和文本(每个项目并排放置)。现在,当我从组合框列表中选择一个项目时,我想在 Combobox selecteditem 区域上显示其他内容(而不是相同的图像和文本)可能是另一个文本或另一个图像。
有没有办法我可以实现它。
最简单的方法是将 IsSelected 触发器添加到 Combobox 的 DataTemplate(Itemstemplate) 中,我认为您有两组 Visual 元素,一组用于常规数据显示,另一组用于选定的视觉效果,当您需要在 ComboboxItem 上设置 IsSelected 属性时使常规视觉效果隐藏而另一个显示。这里真正的技巧是找到使用 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>
有几种可能的方法,其中之一是使用DataTemplates 和 Data 模板选择器。