如何隐藏WPF AutoCompleteBox下拉列表

时间:2011-12-15 03:36:02

标签: c# wpf autocomplete wpf-controls

我在我的WPF应用程序中使用MVVM。我的xaml文件中有一个AutoCompleteBox,它可以正常工作。但是现在,我在我的ViewModel isHideDropDown中添加了一个bool标志,如果设置为true,它将隐藏AutoCompleteBox的下拉列表。总而言之,如果isHideDropDown设置为true,我希望我的AutoCompleteBox作为普通TextBox工作。

有人可以给我一些想法吗?

由于

3 个答案:

答案 0 :(得分:1)

假设您使用的是描述为here的自动完成框。

MinimumPrefixLength设置为-1将禁用控件的自动完成功能。

因此,如果向ViewModel添加int MinimumPrefixLength属性,当-1为true时返回isHideDropDown,则可以绑定到该属性。另一种选择是编写一个值转换器,将布尔值isHideDropDown转换为适当的整数。

答案 1 :(得分:1)

我没试过这个。但是,为什么不将绑定到ItemSource属性的对象设置为null,而不是将isHideDropDown设置为true? 在autocompleteBox中,您需要设置ItemSource。如果您不想自动完成功能,只需将该对象设置为空

答案 2 :(得分:0)

您也可以尝试覆盖ItemContainerStyle:

http://msdn.microsoft.com/en-us/library/dd795156%28v=vs.95%29.aspx#customizing_the_appearance_of_the_autocompletebox

使用DataTrigger和Binding有条件地将ItemContainer的可见性设置为Visible / Collapsed