我的WPF 应用程序中有一个ListBox
(x:Name = ),它从集合中获取项目。该集合是我班级中的一个属性,类型为. 我以这种方式绑定它:(是一个包含一些项目的对象)notesList
ItemsSource
Notes
Data
ObservableCollection<Note>
data
Data
Notes
Binding bind = new Binding();
bind.Mode = BindingMode.TwoWay;
bind.Source = data;
bind.Path = new PropertyPath("Notes");
notesList.SetBinding(ListBox.ItemsSourceProperty, bind);
绑定有效,项目显示在 ListBox 中。我设置了 TwoWay 绑定,因为我希望notesList
和Notes
集合同步。当我尝试以这种方式删除所选项目时会出现问题:
NotesList.Items.RemoveAt( notesList.SelectedIndex );
我得到异常:“使用 ItemsSource 时操作无效。改为使用 ItemsControl.ItemsSource 访问和修改元素”。
我的问题:我必须使用收集功能来删除元素吗?data.Notes.RemoveAt(index)
? 有什么方法可以使用ListBox
类删除项目,因此会导致删除集合中的项目?我认为使用 TwoWay Binding 是可能的。