gpt4 book ai didi

c# - 更改 ItemsSource 后如何让 Silverlight ComboBox 调整下拉列表的大小?

转载 作者:行者123 更新时间:2023-11-30 22:50:40 28 4
gpt4 key购买 nike

网络上有各种关于此问题的帖子,其中 ComboBox 仅更改其下拉高度以适应其第一个下拉列表中的项目。对显示的项目的任何更改都不会导致下拉列表调整大小。我发现的各种解决方法似乎都不适合我,所以我想知道是否有人找到了解决此问题的方法。

我目前的选择是使用 MinHeight 并将其设置为合理的大小(如果我设置 MinHeight 和 MaxHeight,我会遇到与设置 Height 相同的问题 - 当项目超出范围时没有滚动条。

我试过更换元素的容器,但似乎它们都有这个问题。有什么想法吗?

请注意,每当我按照几个论坛上的指示更改 ItemsSource 时,我也曾尝试以编程方式重新创建组合,但我无法在不崩溃的情况下让它工作。

最佳答案

“添加和删除”方法对我有用。这是我所做的(如果您做的事情略有不同,或者其他人想尝试这种方法):


  • 读取并在本地存储您感兴趣的所有属性
  • 从可视化树中删除组合框
  • 将变量设置为空
  • 创建一个新的组合框
  • 恢复您在上面存储的属性
  • 带走你第一个想到的数字
  • 将其添加回可视化树

例如:

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);

关于c# - 更改 ItemsSource 后如何让 Silverlight ComboBox 调整下拉列表的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/442187/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com