我有一个视图模型类,我想用它来提供要绑定到的数据网格中多列的可见性属性。这是我所拥有的片段。
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]; }
}
感谢。
答案 0 :(得分:0)
最佳解决方案是使用自己的视图模型和绑定设置自定义控件组成网格。网格很可能由多个列控件组成,每个控件都具有您正在寻找的属性。