更新列表框

时间:2009-04-27 15:02:58

标签: c# .net sql database sql-server-ce

我已使用以下代码将ListBox绑定到SQL CE数据库:

ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:DatabaseWindow}}, Path=Database.Photos1}"

此ListBox已正确填充。但是当我尝试在数据库中插入一行(InsertOnSubmit + SubmitChagnes)时,ListBox没有更新!

我试过了:

ListBox.Items.Refresh();

ListBox.GetBindingExpression(ListBox.ItemsSourceProperty).UpdateTarget();

ListBox.ItemsSource = null; 
ListBox.ItemsSource = this.Database.Table;

这些都没有帮助。如何更新ListBox?!

PS:重新加载数据库后,该行显示在ListBox中。 PPS:如果有人知道带有WPF的SQL CE教程,那么会显示插入到ListBox中 - 这也很棒!

1 个答案:

答案 0 :(得分:1)

确保您分配给ItemsSource的数据实现INotifyCollectionChanged。 (例如,您可以将您的项目放入ObservableCollection) 此外,要更改要反映的个人项目,您必须实施INotifyPropertyChanged。