我有一个包含数据绑定到项目付款的列表框。当我添加新付款时,付款将被添加到列表中。添加页面还用于编辑付款。调用该事件,在调试模式下,我可以看到付款的更改值,但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>
为什么添加了新项目,但现有项目未更新?有什么想法吗?
答案 0 :(得分:0)
听起来你的项目属性不是依赖项属性,或者没有人为它们触发属性。
答案 1 :(得分:0)
正在发生的事情是,虽然Project
- 对象已更新,但Payments
对象(可能是List
)却未更新。
可以尝试的内容如下:
List
- 对象被操纵(编辑,删除/添加项目)时,触发PropertyChanged
- Projects
的事件List<Project>
切换为ObservableCollection<Project>
,这肯定会解决您的问题ObservableCollection
,请在显示列表的视图中为OnNavigatedTo()
实施覆盖,并调用PropertyChanged
- 事件(项目,付款等)来自那里。其中任何一个都应该解决你的问题 - 这都是品味和偏好的问题。