【发布时间】:2013-10-29 16:24:23
【问题描述】:
我有一个如下指定的组合框:
<ComboBox Height="31" Margin="7,7,0,0" Name="callerID" IsEditable="True" Background="LightBlue" KeyDown="callerIDbar_KeyDown" Foreground="White" FontSize="17" FontWeight="Bold" HorizontalContentAlignment="Center" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" />
storedCalls 是一组电话号码,将填充到ComboBox.Items:
foreach (string call in storedCalls)
{
if (call != "Enter a number to dial")
callerID.Items.Add(call);
}
这一切都很好。我填充了Items 主要,因为我喜欢由ComboBox 的Items 集合中的值驱动的自动完成。 XAML 有没有办法禁用下拉错误并禁用下拉菜单? IE。制作一个简单的自动完成文本框,如控件?
我已经看到完整的 TextBox 控件包含一堆代码隐藏和复杂的标记,这不是我想要做的。我只需要禁用下拉菜单的显示功能。
【问题讨论】:
-
我相信您必须更改模板。从我所见,它有点巨大......
-
您正在寻找
AutoCompleteTextBox。您可以在WPF Toolkit 中找到一个。顺便说一句,不要在 WPF 的程序代码中操作 UI 元素。为此创建一个合适的 ViewModel。 -
@Tico 您能否详细说明更改模板及其可能带来的影响?我不是专门的全职 WPF 开发人员。
-
@HighCore,是的,我担心我可能不得不包含另一个资源或使用已经烘焙的控件。问 SO 是我走这条路之前的最后一次努力。谢谢推荐。
-
@kmarks2 如果您右键单击您的
ComboBox -> Edit Template -> Edit a Copy...您将看到控件是如何设计的。但是既然你已经说过你不是一个全职的 WPF 开发人员,那现在可能非常困难! HighCore 建议可能是您的答案!