そのため、私が取り組んでいるこのプロジェクトでは、.NETPropertyGridコントロールを使用することにしました。propertygridには、ListViewコントロールでユーザーが選択したアイテムに基づいて、実行時に作成されるオブジェクトが入力されます。
したがって、「ベース」などのListViewの最初の項目を選択すると、PropertyGridは、そのコンポーネントの寸法などのプロパティを表示します。次に、「上」を選択すると、PropertyGridに色が表示されます。いずれにせよ、リスト内のすべてのアイテムは1つの「コンポーネント」オブジェクトです。
基本的に、ListViewアイテムが選択されると、ループはデータセットを反復処理して、選択されたコンポーネントオブジェクトに関連付けられているプロパティを見つけ、propertygridに表示されるpropertybagクラスにスローされます。
これらのコンポーネントとプロパティはすべて1つのクラスであるため、私が理解しようとしていることは、ドロップダウンメニュー、画像ボックス、またはテキストフィールドとして表示するプロパティを動的に決定する方法です。
Visual Studios 2010 / C#.NETを使用しており、動的プロパティの生成には、TonyAllowattがCodeProjectで見つけた明らかに人気のある「PropertyBag」クラスを使用しています。私が考えることができる唯一のことは、プロパティのデータベースに列を追加し、それを使用してPropertyBagに追加するデータ型を指示することです。これは人気のあるトピックのようですが、動的に構築されたオブジェクトと組み合わせてそれを行う方法を理解するのに苦労しています。