DataGrid で DataBinding を使用しています。List 型のMyDataSourceというプロパティを持つビューモデルがあります。Class1 には、List 型のMyListというプロパティがあります。Class2 には、文字列型のMyPropertyというプロパティがあります。
私のDataGrid xamlは次のようになります。
<DataGrid ItemsSource="{Binding MyDataSource}">
<DataGrid.Columns>
<DataGridTextColumn Header="MyValue" Binding="{Binding Path=MyList[0].MyProperty}"/>
</DataGrid.Columns>
</DataGrid>
ここでは、PropertyPath MyList[0].MyPropertyと MyDataSource にコードでアクセスできます。ここで、GetProperty メソッドでMyList[0].MyPropertyを渡すことによって、 MyPropertyの PropertyType を調べたいと思います。
次のリンクに記載されている方法に従いました。しかし、ここでは MyList[0] の PropertyInfo は null です。 http://www.java2s.com/Code/CSharp/Reflection/Getsapropertysparentobject.htm
編集:
次のコードも試しました。
PropertyInfo pInfo = MyDataSource.GetType().GetProperty(MyList[0].MyProperty)
しかし、pInfo はここで null を返します。
誰かが私に解決策を提案してもらえますか?