具有多个相似属性的视图模型类

本文关键字:视图 模型 属性 相似 | 更新日期: 2023-09-27 17:49:21

我有一个视图模型类,我想用它来提供数据网格中要绑定的多列的可见性属性。以下是我所拥有的一个片段。

class ViewVM
{
  private bool[] columnVisible;
  public ViewVM ()
  {
    columnVisible = new bool[12];
  }
  private void BuildData(int BuildPeriod)
  {
    //Do stuff
    for (int i = 1; i < 12; i++)
    {
      if (i <= BuildPeriod) columnVisible[i] = true;
      else columnVisible[i] = false;
    }
  }
  public bool Column1Visible { get { return columnVisible[1]; } }
  public bool Column2Visible { get { return columnVisible[2]; } }
  public bool Column3Visible { get { return columnVisible[3]; } }
  //etc
}

我的问题是我不想有一个属性绑定到每一列。我宁愿有类似下面的东西,但c#不支持属性中的参数。有没有人有一个建议,我可以做一些类似于以下?

public bool ColumnVisible [int Column] 
{ 
  get { return columnVisible[Column]; } 
}

谢谢。

具有多个相似属性的视图模型类

最好的解决方案是用自定义控件组成网格,这些控件有自己的视图模型和绑定设置。网格很可能由几个列控件组成,每个列控件都有您要查找的属性。