我想在这个答案中实现第二个(插入宏)解决方案。
是否可以有一个始终显示某些文本(折叠时)的组合框?它绑定到 ItemSource,用户可以展开下拉列表并选择一个项目,但我希望文本在折叠时始终显示“插入宏”或类似的内容。我不希望自定义文本显示为选择
当然有可能。首先,您必须定义自己的 ToggleButtonStyle。ControlTemplate 包含一个内容已绑定的内容演示者。
<ContentPresenter Content="{TemplateBinding Content}"
OverridesDefaultStyle="True"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
如果需要,您可以添加其他样式。
那么你必须创建一个自定义的 ComboBoxStyle。创建它的最简单方法是更改默认模板(在 Blend 中右键单击您的组合框 -> 编辑模板 -> 编辑副本)。
此模板中的 ContentPresenter 应具有如下所示的 Binding:
Content="{TemplateBinding SelectionBoxItem}"
只需删除此行,如果选择了项目,您的 ToggleButton 不应获得新的内容。
现在您应该能够创建具有固定内容的组合框,如下所示:
<ComboBox Style="{StaticResource ComboBoxStyle}" Text="Title">
这里还有一些 ControlTemplateExamples http://msdn.microsoft.com/en-us/library/ms752094(v=vs.85).aspx
希望这可以帮助。