我已使用以下代码将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中 - 这也很棒!
答案 0 :(得分:1)
确保您分配给ItemsSource的数据实现INotifyCollectionChanged。 (例如,您可以将您的项目放入ObservableCollection) 此外,要更改要反映的个人项目,您必须实施INotifyPropertyChanged。