カスタム コントロールをゼロから ( を使用してGraphics
) 作成しています。これは、それぞれがセルのリストを持つ一連の列を表します。グリッド ビューとよく似ていますが、これにはいくつかのカスタム機能があります。
すべてのデータ バインディングの問題を管理する方法を見つけようとして苦労しています。このグリッドには、DataSource
基本的に、コントロール内のセルにバインドする必要があるいくつかのオブジェクトのギザギザ配列 (2D) である必要があるプロパティが必要です。これらの各オブジェクトがどのようなプロパティを持つかはまだわかりません。今のところ、テキストのみを使用しています。私がやろうとしているのは、モデルにこのインターフェースを実装させることです:
public interface IDiagramDataSource
{
IBindingList Columns { get; }
}
次に、各列にこれを実装させます。
public interface IDiagramColumnDataSource : INotifyPropertyChanged
{
IBindingList Cells { get; }
}
しかし、これらすべてのオブジェクトをグリッド内の対応するオブジェクトと同期させる最善の方法を見つけるのにまだ苦労しています。すべての拘束力のある混乱を独立したクラスに入れたいと思っていますが、これを行う方法がわかりません。今のところ、データ ソースに変更があるたびに全体を再描画するだけですが、最終的には、どのセルのどのプロパティまたはどの列のどのセルが変更されたかを特定して、更新のみできるようにしたいと考えています。私のグリッドに必要なアイテム。
コントロールをネストされたリストにバインド可能にする場合に従うべきパターンはありますか? DataGridView
コントロールがこれを行うので、あると思います。