0

ListCollectionView を ItemsSource として渡すことができるカスタム コントロールがあります。これには、リフレクションの使用のために Child-Type が必要です。

これで、最初の要素から Type を見つけることができました。

Type t = lcv.GetItemAt(0).GetType();

ただし、コレクションが空の場合は機能しません。

また、呼び出すことによっても機能しますAddNew()

Object o = lcv.AddNew()
Type t = o.GetType();

しかし、ダミー オブジェクトを作成するためだけに AddNew を呼び出したくありません。サイト効果としてバグが発生するからです。

ただし、メソッド「AddNew()」が作成するオブジェクトのタイプを認識している場合、実際の Child-Type を作成せずに見つける方法が必要です。

Google、msdn、および Try & Error を使用しましたが、方法が見つかりませんでした。

いくつかのアイデア?前もって感謝します :-)

4

1 に答える 1

1

GetGenericArgumentsを使用して、コレクションに含まれる型を見つけることができます

var type = lcv.SourceCollection.GetType().GetGenericArguments()[0]
于 2012-11-08T15:49:31.113 に答える