首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未更新ListboxItems的绑定

未更新ListboxItems的绑定
EN

Stack Overflow用户
提问于 2012-07-23 23:01:58
回答 2查看 97关注 0票数 1

我有一个列表框与数据绑定到一个项目的付款。当我添加新付款时,付款将被添加到列表中。add-page还用于编辑付款。事件被调用,在调试模式下,我可以看到我的付款的更改值,但ListBoxItem不会被更新。在添加页面的末尾将调用一个事件,该事件将更新列表框项目:

代码语言:javascript
复制
GlobalNotifier.OnPaymentAdded();

OnPaymentAdded调用一个只通知属性更改的方法:

代码语言:javascript
复制
OnNotifyPropertyChanged("Project");

列表框的代码:

代码语言:javascript
复制
<ListBox Name="ListPayments" ItemsSource="{Binding Project.Payments}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Margin="10,5,10,0">
                <StackPanel>
                    <TextBlock FontSize="30" Text="{Binding Name}" />
                </StackPanel>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

为什么添加了新项,但未更新现有项?有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-24 19:15:02

实际情况是,尽管Project-object已更新,但Payments对象(假设为List)并未更新。

您可以尝试以下内容:

  • 每当操作(编辑,删除/添加项目) List-object时,触发PropertyChanged-event Projects
  1. You还可以将List<Project>切换到ObservableCollection<Project>,这肯定会解决您的问题
  2. 如果您不能切换到ObservableCollection,请在显示列表的视图中实现D15的覆盖,并从列表中调用D16-事件(项目、付款等)。H217G218

其中任何一个都可以解决你的问题--这都是品味和喜好的问题。

票数 0
EN

Stack Overflow用户

发布于 2012-07-23 23:07:52

听起来你的item属性不是依赖属性,或者没有人为它们触发propertychanged。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11615176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档