【发布时间】:2013-08-08 10:52:38
【问题描述】:
我对 ListBox 有一点问题。 如果我通过代码添加一个项目,因为它:
ListBox1.Items.Add(new MyData());
<ListBox Name="ListBox1" Height="Auto"
Style="{DynamicResource MyListBoxStyle}"/>
我的 ListBox 什么也不显示,而 Items 包含我添加的大量项目。
但是,如果我将一个项目直接放在我的 XAML 和 c# 中,MyData 会正确显示:
ListBox1.Items.Add(new MyData());
<ListBox Name="ListBox1" Height="Auto"
Style="{DynamicResource MyListBoxStyle}">
<data:MyData/>
</ListBox>
任何人都知道如果我没有将项目放入我的 XAML 中为什么它不能正确显示,以及如何更正它?
提前谢谢你:)
[已解决] 添加项目时,我的 ListBox 已经显示。所以要解决这个问题,只需要求更新布局以通知 ItemSource 已更改:
ListBox1.UpdateLayout();
【问题讨论】:
-
wpf 中更好的技术是数据绑定。您应该将一个可观察集合绑定到列表框并将项目添加到您的可观察集合。这会导致列表框通知集合中的更改并刷新其显示的数据。