【发布时间】:2017-01-16 08:07:15
【问题描述】:
我需要在我的ComboBox 中显示一个默认文本,当用户选择Combobox 的一个项目时,该文本也不能更改,实际上为此我创建了这个结构:
<ComboBox ItemsSource="{Binding AvailableNations}" Width="160" Height="55" Margin="0, 0, 0, 15"
Text="Select Countries" IsEditable="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked}" Content="{Binding Item.Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
此显示为默认文本Select Countries,但如果我选择一个项目,默认文本将消失并显示所选项目,我该如何解决这个问题?
【问题讨论】:
-
ComboBox旨在显示所选项目。为什么不使用TextBlock在它旁边显示"Select country:"?为什么它必须是ComboBox的一部分?通常当ComboBox没有任何选择时使用此行为(显示提示)。但是一旦有了提示,就不再需要提示并显示选定的值。 -
'因为我需要在组合框中显示默认文本而不是所选项目,用户可以在我的组合框中选择更多项目..
-
您可以在处理选择后将
Text设置为"Select Countries"(我假设您以某种方式向用户显示多选,必须打开下拉菜单才能看到它听起来不像好的设计)。您是否尝试过寻找现有的多选ComboBoxes?例如。 here. -
我自己写了一个类来管理多选
-
我的理解是否正确,您希望文本在空白时显示
Select Countries :,在选择项目时显示Select Countries : CAN, US, ETC?