0

次のコードを使用して、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: ListBox への挿入が示されている WPF を使用した SQL CE のチュートリアルを誰かが知っていれば、それも素晴らしいでしょう!

4

1 に答える 1

1

ItemsSource に割り当てるデータが INotifyCollectionChanged を実装していることを確認してください。(たとえば、アイテムを ObservableCollection に入れることができます) また、個々のアイテムへの変更を反映するには、INotifyPropertyChanged を実装する必要があります。

于 2009-04-27T18:03:12.570 に答える