2009-07-24 145 views
2

我有一个组合框,只有少量显示为图像和文本(每个项目并排放置)的项目。现在,当我从组合框列表中选择一个项目时,我想要显示其他文本(而不是相同的图像和文本),可能是Combobox selecteditem区域中的另一个文本或另一个图像。WPF组合框选定项目

有没有一种方法可以实现它。

+0

我想改变appearence了when他组合框倒塌,将selectedItem显示在组合框。 – deepak 2009-07-24 09:49:22

回答

2

最简单的方法是将一个IsSelected触发器添加到Combobox的DataTemplate(Itemstemplate),我认为您有两组可视元素用于常规数据显示,另一组用于所选视觉效果,当IsSelected属性设置为on您需要的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> 

+0

两个** Setter **的** TargetName **是否应该真正阅读** selectedVisuals **?不应该是** regularVisuals **? – Mizipzor 2009-10-15 14:52:02