在WPF中设置组合框的下拉高度

在WPF中设置组合框的下拉高度,wpf,combobox,Wpf,Combobox,我在WPF中有一个组合框,我在运行时(通过数据绑定到列表)向其中添加项目。我想动态设置下拉框的高度,以便显示所有(或大部分)项目。不幸的是,下拉列表的高度似乎只设置了一次,无法动态更改。它看起来总是一样大 是否有一些相对简单的方法来调整下拉高度 是的,我尝试在将项目添加到组合框后设置它。在调试器中,新值似乎存在。但是,当我打开下拉列表时,它会下降到自己选择的大小。我尝试过夸大MaxDropDownHeight,甚至将其设置为“自动”都没有效果。属性MaxDropDownHeight是组合框上的

我在WPF中有一个组合框,我在运行时(通过数据绑定到列表)向其中添加项目。我想动态设置下拉框的高度,以便显示所有(或大部分)项目。不幸的是,下拉列表的高度似乎只设置了一次,无法动态更改。它看起来总是一样大

是否有一些相对简单的方法来调整下拉高度



是的,我尝试在将项目添加到组合框后设置它。在调试器中,新值似乎存在。但是,当我打开下拉列表时,它会下降到自己选择的大小。我尝试过夸大MaxDropDownHeight,甚至将其设置为“自动”都没有效果。

属性MaxDropDownHeight是组合框上的一个依赖属性,用于控制下拉列表的高度。因为它是一个依赖属性,所以它的值可以动态设置


您是否尝试过设置此值?

设置组合框的样式={x:Null},以确保没有影响下拉面板大小的样式问题。

对于我来说,问题是组合框下拉列表的高度为95像素,与项目数量成比例

组合框的数据源是
集合
,但将其更改为
可观察集合
后,组合框下拉列表将打开,显示所有项目

现在,
MaxDropDownHeight
属性也可以正常工作


参考:这里的评论

这不是一个好答案的原因是因为他正在数据绑定到一个列表。我不知道为什么,但MaxDropDownHeight在绑定到列表时没有效果。如果您更改为ObservableCollection,如@kimmoli所说,它会起作用。我使用了MaxDropDownHeights,似乎该集合需要是一个
ObservableCollection
,以便允许下拉列表自行调整大小。@Maxence you is god:)您救了我一天。