Я обрабатываю событие, которое передает аргументы события, указывающие на список и T newitem, и моя задача - добавить новый элемент в список.
Как я могу сделать это, не проверяя все типы, которые, как я знаю, может быть T?
Текущий код представляет собой пару десятков строк этого:
private void DataGridCollectionViewSource_CommittingNewItem(object sender, DataGridCommittingNewItemEventArgs e)
{
Type t = e.CollectionView.SourceCollection.GetType();
if (t == typeof(List<Person>))
{
List<Person> source = e.CollectionView.SourceCollection as List<Person>;
source.Add(e.Item as Person);
}
else if (t == typeof(List<Place>))
{
List<Place> source = e.CollectionView.SourceCollection as List<Place>;
source.Add(e.Item as Place);
}
...
Я бы предпочел, чтобы можно было сделать что-то вроде этого :
((List<T>) e.CollectionView.SourceCollection).Add((T)e.Item);
Есть идеи?