为什么在以下代码中collectionchanged事件不会触发,但是我可以看到我添加到ObservableCollection的新的InventoryBTO实例?ObservableCollection和CollectionChanged事件
private ObservableCollection<InventoryBTO> _inventoryRecords;
public ObservableCollection<InventoryBTO> InventoryRecords
{
get { return _inventoryRecords; }
set { _inventoryRecords = value; }
}
private InventoryBTO _selectedRecord;
public InventoryBTO SelectedRecord
{
get { return _selectedRecord; }
set
{
if (_selectedRecord != value)
{
_selectedRecord = value;
OnPropertyChanged(new PropertyChangedEventArgs("SelectedRecord"));
}
}
}
public InventoryViewModel()
{
if (_inventoryRecords == null)
{
InventoryRecords = new ObservableCollection<InventoryBTO>();
this.InventoryRecords.CollectionChanged += new NotifyCollectionChangedEventHandler(InventoryRecords_CollectionChanged);
}
_inventoryRecords = InventoryListBTO.GetAllInventoryRecords();
}
void InventoryRecords_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
}
看起来像你马上挂接到集合中的构造函数,然后用完全不同的集合覆盖引用。也许你反而意味着要做一个AddRange而不是覆盖?无论哪种方式,只要将值设置为属性,您创建并随后连接的可观察集合就会消失 – 2010-06-15 03:33:28