2011-07-06 18 views
4

IEnumerable入力を受け取り、いくつかの変換と集計を行い、動的な列数を持つ新しいIEnumerableを返すレポートコンポーネントを作成しています。適切な列を使用してDataTableを作成するのは簡単なので、私はこれにADO.NETを使用しています。DataColumnに属性を追加する

変換されたIEnumerableは、属性に格納された情報を使用して結果をうまくフォーマットするレポートビジュアライゼーションコンポーネントに送信されます。属性が適用されると属性を削除または変更する必要はありません。

は、私の質問はこれです: それはADO.NET DataViewによって放出されるPropertyDescriptorは、これらの属性が含まれるようにDataColumnAttributeを関連付けることは可能ですか?

フォローアップの質問: これはADO.NETでは不可能ですが、私がこれを達成するために使用できる他のライブラリはありますか?

編集:私はこのような何かを行うことができるようにしたいと思い明瞭 の更新:

DataTable dt = new DataTable(); 
DataColumn example = dt.Columns.Add("Test",typeof(double)); 

//This is the functionality I am looking for ideally 
example.AddAttribute(new CustomAttribute("Hello")); 

public class CustomAttribute : Attribute 
{ 
} 
+0

を発することのPropertyDescriptorに表示されていることはできません私が必要としたときの情報...あなたは何らかの形でバッキングテーブルに関連付けられていないDataViewを使用していますか? –

+0

@ebyrobいいえ標準的な方法でDataViewを使用しています。 DataColumnsに属性を付けてタグ付けできるようにしたい – cordialgerm

+0

DataView.Tableはどのように標準ではありませんか? (ExtendedPropertiesと組み合わせると、この能力が得られます。作成と使用の間にDataViewをシリアル化して、どのようなExtendedPropertiesを保存するかを制限する場合は、唯一の問題が発生する可能性があります) –

答えて

7

はDataColumnsの上ExtendedPropertiesプロパティを参照してください。これにより、カスタムデータをデータ列に追加することができます。ただし、このカスタムデータを使用するコードを自分で記述する必要があります。フォーマット(またはこれまでに使用するデータを意図したもの)は自動ではありません。

+1

Thanks - 私はExtendedPropertiesを認識していましたが、私は特にPropertyDescriptorにそれらを認識させようとしていました。 +1努力のために – cordialgerm

+0

文書に記載されていることに注意してください:* "DataColumnがXML *として記述されている場合、String型ではないプロパティは保持されません"。だから、あなたはすべてを保存することができますが、文字列だけが保持されているようです。 –

2

自分の質問に答えるために:それはのDataColumnに属性を注入すると、それらはITypedListのデータビューの実装では、私は、一般的にこれを取得するためにDataView.Table.Columns []を使用しました

関連する問題