【发布时间】:2013-11-05 12:38:35
【问题描述】:
我正在尝试在组合框中设置固定文本,但无法“覆盖”它始终将文本设置为 SelectedItem.ToString() 的默认行为。有没有办法做到这一点?
我当前的组合框如下所示:
<ComboBox x:Name="ddlSection"
Text="Hello World!"
ItemsSource="{Binding Sections}"
SelectedItem="{Binding SelectedSection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</ComboBox>
在此组合框中应始终包含文本“Hello World!”无论选择什么项目都会显示,我现在唯一可以实现的方法是使用 SelectedItemChanged 并手动重置 Text 属性。
【问题讨论】:
-
用户将如何看到他选择了另一个项目?
-
文本应始终保持 Hello World 但用户可以在弹出窗口打开时选择不同的项目?这对你有多大意义?
-
我知道这不是默认行为,用户不会看到当前选择的内容,但很难解释为什么我需要它。所以是的,这正是我想要的,很抱歉这对你没有任何意义,但有没有办法做到这一点。
-
是的,有办法做到这一点。使用 DataTemplates 或 ControlTemplates。
-
@devhedgehog 您能否提供一个更解释的答案,并且再次不是您推荐与 gleng 相同的内容,弹出窗口中的项目应保持原样并仅“正确”显示文本框(在组合框)应该显示不同的值(“Hello World!”)。