1

Excel ファイル (.xls) からテーブルを読み込んで DataGrid に表示しようとしています。テーブルには不明な次元があり、各列には 1 つの不明な型 (string、double、または int) の値があります。

COM 経由でファイルにアクセスし、テーブルを ExpandoObjects の List<> に配置します。DataGrid.ItemSource をリストに設定すると、グリッドは視覚的に空のままになります。列とそのデータ バインディングを明示的に定義すると、アプリケーションが指定されたプロパティを ExpandoObjects で見つけることができないという実行時メッセージが生成されます。

GridView にテーブルを表示するにはどうすればよいですか? 私は Silverlight 5 RC を使用しており、それを行う簡単な方法を望んでいました。少なくとも、これまでに Silverlight 2 および 3 で見たソリューションよりも単純です。

4

2 に答える 2

0

ウラジミール・ボドゥロフのソリューションがうまく機能することに気付きました。ExpandoObjects を Dictionaries に置き換え、Bodurov のクラスを使用して List を DataGrid が処理できるものに変換しました。

于 2011-10-27T13:21:29.013 に答える
0

動的でICustomTypeProviderを実装していない場合、Silverlight 5 ではバインドされません。WPF には動的なデータバインディングがあり、(Expando のように) プロパティを知ることができる場合、任意の IDynamicMetaObject プロバイダーで機能する CustomType を作成することさえ難しくありません。特に封印されているため、Expandoの場合。

つまり、ICustomTypeProvider を実装する独自の動的型を作成する必要があるということです。

于 2011-10-26T16:09:37.647 に答える