我正在从头开始编写一个自定义控件(使用Graphics
),它将代表一组列,每个列都有一个单元格列表,很像网格视图,除了它会有一些自定义功能。
我很难弄清楚如何管理所有数据绑定问题。我希望这个网格有一个DataSource
属性,它基本上需要是一些对象的锯齿状数组(2D),每个对象都需要绑定到控件中的一个单元格。我仍然不确定这些对象中的每一个都有哪些属性,到目前为止我只使用文本。我一直在尝试做的是让我的模型实现这个接口:
public interface IDiagramDataSource
{
IBindingList Columns { get; }
}
然后让每一列实现这个:
public interface IDiagramColumnDataSource : INotifyPropertyChanged
{
IBindingList Cells { get; }
}
但是我仍然很难找出使所有这些对象与网格中的相应对象保持同步的最佳方法。我希望能够将所有绑定的混乱放在一个独立的班级中,但不知道如何做到这一点。现在,只要数据源发生任何变化,我就会重新绘制整个东西,但我希望最终能够识别哪个单元格中的哪个属性或哪个列中的哪个单元格发生了变化,以便我只能更新我的网格中的必要项目。
当您希望控件可绑定到嵌套列表时,是否有任何模式可以遵循?我猜有因为DataGridView
控制这样做。