私はこれらの2つのクラスを持っています:
[Serializable]
public class Level
{
public List<Entity> Entities { get; set; }
public Level()
{
Entities = new List<Entity>();
}
}
[Serializable]
public class Entity
{
public string ID { get; set; }
public string Class { get; set; }
public string TextureName { get; set; }
public int X { get; set; }
public int Y { get; set; }
public Box BoundingBox { get; set; }
}
「エンティティ」オブジェクトを「レベル」オブジェクトに配置できる小さなレベル エディタを作成したいと考えています。
そこで、Windows フォーム アプリケーションを作成し、「レベル」オブジェクトを表す「パネル」コントロール (1 つのインスタンスのみ) を作成し、そのパネルに「エンティティ」オブジェクトを表す「ピクチャ ボックス」コントロールを作成します。
「PictureBox」コントロールをクリックすると、対応する「Entity」オブジェクトを取得してそのプロパティを取得したいと考えています (たとえば、「PropertyGrid」で表示できます)。
どうすればいいのですか?
カスタム コントロール (「レベル」クラスを実装する「パネル」、および「エンティティ」クラスを実装する「ピクチャ ボックス」) を作成しようとしましたが、最初のコントロールは常に重複データ (コントロールとオブジェクトを別々に) を保持するため、面倒です。 )。
「Entity」オブジェクトの ID だけを保持するカスタム「PictureBox」コントロールを作成し、対応する「Entity」を検索するメソッドを作成することもできます。
私は現在、モデル ビュー コントローラーとモデル ビュー プレゼンターのアーキテクチャを調べています。問題を解決する方法を理解するためです (たとえば、Id を介したルックアップはそこで行われます)。ただし、厳密に分離する必要はありません。現在の UI とデータ。
どんな助けでも大歓迎です。