私はListとT newitemを指し示すイベントargsを渡すイベントを処理しています。私の仕事は新しいリストをListに追加することです。Tが何であるか知らずにリストTタイプのアイテムをリスト<T>に追加するにはどうすればいいですか?
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);
任意のアイデア?
'System.Collections.ICollection' の定義が含まれていません。 「追加」 - 私はこれを最初に投稿しましたが、私はIListを試していませんでした。ありがとう。 – Alain
@Alainああ、十分な公正 - どのメソッドがどのインターフェースにあるのか分からなくなった(iircは非ジェネリック版とジェネリック版の間で少し違いがある) –
サニティチェックとして、SourceCollection e.Itemと同じ型ですか? – Alain