WPF comboBox的问题

冏程序 2016-11-02 05:05:05
comboBoxItem的样式:

<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Grid>
<Border x:Name="Bd" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ContentPresenter
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="Center"/>
</Border>
<Image x:Name="img" Stretch="Fill" Height="{Binding ActualHeight, ElementName=Bd}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" TargetName="img" Value="Image/select.png"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Source" TargetName="img" Value="Image/select.png"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Property="Selector.IsSelectionActive" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Source" TargetName="img" Value="Image/select.png"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

如果样式这样写,通过一个对象绑定,数据显示不出来?


Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
如果删掉上面这3个属性,数据就能显示出来。

有哪位大神帮忙解释下这是为什么?
...全文
929 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2016-11-07
  • 打赏
  • 举报
回复
TemplateBinding 模板绑定,是根据原始模板来显示到controltemplate中的。 可以了解与Binding的区别。
muzizongheng 2016-11-05
  • 打赏
  • 举报
回复
你自己设置了没combobox的上面3个属性. 因为控件模板中制定要根据3个属性来 . 你设置一下就可以看到效果

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧