【问题标题】:StackPanel not updatingStackPanel 未更新
【发布时间】: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


【解决方案1】:

我要大胆猜测一下,说它是您正在使用的 StaticResource。

如果你没有从它返回 ObservableCollection 并且你没有绑定它来观察原始 ObservableCollection 的变化,它就不会起作用。

您可以将代码发布到转换器吗?

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多