网上有关于此问题的各种帖子,其中ComboBox仅更改其下拉高度以适合其第一个下拉列表中的项目。对所显示项目的任何更改都不会导致下拉列表调整大小。我发现的各种变通方法对我来说似乎不起作用,所以我想知道是否有人找到了解决这个问题的方法。
我当前的选择是使用MinHeight并将其设置为合理的大小(如果我设置MinHeight和MaxHeight,我得到的问题就像我设置高度一样 - 当项目超出界限时没有滚动条。
我已经尝试更改项目的容器,但似乎他们都有这个问题。有什么想法吗?
请注意,每当我按照多个论坛上的指示更改ItemsSource时,我也尝试以编程方式重新创建组合,但我无法在不崩溃的情况下使其工作。
答案 0 :(得分:2)
'添加和删除'方法适合我。这就是我做的事情(如果你做的事略有不同,或者其他人想尝试这种方法):
例如:
string lName = lComboBox.Name;
DataTemplate lTemplate = lComboBox.ItemTemplate;
Thickness lMargin = lComboBox.Margin;
// Other properties
LayoutParent.Children.Remove(lComboBox);
lComboBox= null;
lComboBox= new ComboBox(){
Name = lName,
ItemTemplate = lTemplate,
Margin = lMargin,
ItemsSource = lList // Your datasource
};
LayoutParent.Children.Add(lComboBox);
答案 1 :(得分:1)
感谢this answer,我找到了一个很好的解决方案。它的效果很好,并不像其他建议那样hacky(尽管有效)。
显然,社区维基这篇文章并不是我的回答。请投票给出真正的答案,markti应该为这个答案加倍。