【发布时间】:2009-08-13 20:23:57
【问题描述】:
我遇到了直接绑定的 ObservableCollection 在添加新项目时没有更新 StackPanel 的问题。任何初始项目都会正确显示。只有稍后添加的项目无法显示。 XAML:
<ItemsControl x:Name="ImageTable" ItemsSource="{Binding Path=SystemObjectViewItems, Converter={StaticResource UIElementWrapper}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<ContentPresenter Content="{Binding Path=Value.View}"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我正在使用 Prism MVVM,因此我绑定到具有属性的 ViewModel:
public ObservableCollection<SystemObjectViewPresentationModel> SystemObjectViewItems {get; set; }
基本的转换器和绑定正在工作,这可以从我的初始项目正确显示的事实中得到证明。只有在初始绑定后添加到集合中的项目才不会显示。 有任何想法吗? 谢谢, 瑞克
【问题讨论】:
-
您确定将项目添加到列表时或添加项目后转换器不会引发异常吗?
-
是的,我很确定。除了打破未处理的异常处理程序之外,您对如何判断有什么想法吗?
-
观察你的 VS 输出窗口是否有绑定错误。
标签: silverlight data-binding datacontext