我有ComboBox
数据绑定,我无法插入哨兵项目。如果ComboBox中没有选定的值,我想显示一个默认字符串。
我已经尝试过使用这种风格:
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedIndex}" Value="-1">
<Setter Property="Text" Value="(unconstrained)" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
但这完全破坏了数据绑定(没有值可选)。
答案 0 :(得分:0)
你可以尝试这个(不是真正的幸运)解决方案:
您可以在列表中添加另一个元素,并在第一个位置添加值"(unconstrained)"
,并在XAML中将SelectedIndex
设置为0。然后,当选择更改时,您从ComboBox
的基础列表中删除此元素,并将所选索引向上移动一个位置(因为列表的头部已被删除)。
这根本不优雅,但似乎是唯一的解决方案,因为ComboBox
没有某种Header
属性,我不确定Text
对它做了什么(可能它只是继承)。