WPF组合框选择项目

时间:2009-07-24 06:45:29

标签: c# wpf combobox selecteditem

我有一个组合框,其中几个项目显示为图像和文本(每个项目并排放置)。现在,当我从组合框列表中选择一个项目时,我希望在Combobox选择区域上显示其他内容(而不是相同的图像和文本)或另一个文本或其他图像。

有没有办法实现它。

2 个答案:

答案 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