ListboxItem的绑定未更新

时间:2012-07-23 15:01:58

标签: windows-phone-7 xaml data-binding

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

GlobalNotifier.OnPaymentAdded();

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

OnNotifyPropertyChanged("Project");

列表框的代码:

<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>

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

正在发生的事情是,虽然Project - 对象已更新,但Payments对象(可能是List)却未更新。

可以尝试的内容如下:

  1. 每当List - 对象被操纵(编辑,删除/添加项目)时,触发PropertyChanged - Projects的事件
  2. 您也可以将List<Project>切换为ObservableCollection<Project>,这肯定会解决您的问题
  3. 如果您无法切换到ObservableCollection,请在显示列表的视图中为OnNavigatedTo()实施覆盖,并调用PropertyChanged - 事件(项目,付款等)来自那里。
  4. 其中任何一个都应该解决你的问题 - 这都是品味和偏好的问题。