我有一个ComboBox,在其值下方显示空白区域。见下图。
视图模型中的数据在按钮单击处理程序中设置。当我在视图模型的初始化中设置值时,ComboBox很好。当我尝试创建一个小例子时,ComboBox也具有预期的大小。它似乎取决于我在视图模型中设置值的上下文,但我无法弄清楚。我希望有人能给我一个提示。
视图模型中的代码
Repositories.Clear();
Repositories.Add("One");
Repositories.Add("Two");
Repositories.Add("Three");
SelectedRepository = "One";
XMAL中的代码
<ComboBox MinWidth="150"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
IsEnabled="{Binding CT.Connected}"
ItemsSource="{Binding CT.Repositories,
UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding CT.SelectedRepository}"/>
答案 0 :(得分:0)
您要绑定的ItemsSource
必须是ObservableCollection
。如果您将ComboBox
绑定到任何可枚举的类型,而这些枚举类型在其项更改时不会引发属性更改,则ItemsSource
将显示初始空格。
答案 1 :(得分:-1)
当我尝试创建一个小例子时,ComboBox具有预期的大小。
通过该逻辑,它可能不是组合框,而是列表中的数据。您是否可以验证在最后四个项目中,没有8个项目显示的文本值为空?
也许一种风格造成了额外的空间。尝试从组合框中删除样式,例如
<ComboBox Style="{x:Null}"/>
并查看它是否对视觉效果有任何影响。
另外,如何设置数据并查看下拉列表是否具有相同的大小?