【发布时间】:2010-06-15 02:32:01
【问题描述】:
为什么在以下代码中 collectionchanged 事件没有触发,但我可以看到我添加到 ObservableCollection 的 InventoryBTO 的新实例?
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)
{
}
【问题讨论】:
-
看起来你连接到你的ctor中的集合,然后立即用一个完全不同的集合覆盖引用。也许你打算做一个 AddRange 而不是覆盖?无论哪种方式,您创建然后连接到的可观察集合早已不复存在