Perché l'evento collectionchanged non viene generato nel seguente codice, tuttavia è possibile visualizzare la nuova istanza di InventoryBTO che aggiungo a ObservableCollection?ObservableCollection e CollectionChanged Event
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)
{
}
sembra si collega alla raccolta nel ctor e poi subito sovrascrivi il riferimento con una collezione totalmente diversa. Forse invece volevi fare un AddRange invece di sovrascriverlo? In entrambi i casi, la raccolta osservabile che hai creato e quindi collegata è passata da tempo –