绑定ListboxItems未更新
我有一个Listbox与数据绑定到项目的付款。当我添加新的付款时,付款将被添加到列表中。添加页面也用于编辑付款。该事件被调用,在调试模式下,我可以看到我付款的变化值,但ListBoxItem不会被更新。在加载页面的最后一个事件将被调用,更新列表框项目:绑定ListboxItems未更新
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>
为什么要添加新项目,但现有项目未更新?任何想法?
发生了什么事情,虽然Project
对象被更新,但Payments
对象(可能是List
)不是。
什么你可能尝试如下:
- 每当
List
-object被操纵(编辑项目中去除/加入),火PropertyChanged
-event为Projects
- 你也可以将
List<Project>
切换到ObservableCollection<Project>
,这肯定会解决您的问题 - 如果切换到
ObservableCollection
不适合您,请为实施替代在显示列表的视图中,并从那里调用PropertyChanged
-events(项目,付款等)。
其中任何一种都可以解决您的问题 - 这都是品味和偏好的问题。
听起来像你的项目属性不是依赖项属性,或没有人触发propertychanged为他们。
我在OnNotifyPropertyChanged上有一个断点,它在添加和编辑时被调用。但项目不会更新。我也尝试使用自己的propery _Payment_作为指向Project.Payments的ItemsSource,但没有任何更改。你对_dependency properties_有什么意思? – 2012-07-23 18:05:08
依赖项属性是依赖于其他变量的属性 - 或者一般的对象。这里有很多关于这些属性的优秀文章,谷歌将成为你的朋友。 – 2012-07-24 11:16:45
你能发布你的物品类的来源吗? – Zak 2012-07-24 12:19:35
付款是ICollection类型。将付款切换到ObservableCollection解决了问题。谢谢! – 2012-07-24 14:28:50