我正在尝试编写一个类,我可以用它来与我的wpf应用程序中的一组类似控件进行交互。我遇到了一些障碍,现在我想知道这是不是一个糟糕的方法开始。
我想这样做主要是为了让我的代码更易于管理 - 我必须使用我的代码与大约200-300个控件进行交互,将所有代码放在主窗口类中会非常棘手。
这是我希望能够做到的事情:
class ProcControl
{
private CheckBox * [] Boxes = new CheckBox[10];
ProcControl()
{
//set boxes 0-9 to point to the actual checkboxes
}
//provides mass checking/unchecking functionality
public void Refactor(CheckBox box)
{
//see what box it is
int box_index = 0;
while (Boxes[box_index] != box) { box_index++; }
}
}
现在这不起作用。我还没弄明白如何让我的Boxes []数组指向我表单上的实际复选框,所以我还无法与它们进行交互。
甚至可以制作一个指向一堆控件的数组,以便我可以很好地处理它们的属性吗?
为什么我不能从班级内部访问控件?
答案 0 :(得分:1)
在控件的构造函数中将框数组传递给控件...
class ProcControl
{
protected CheckBox[] Boxes { get; private set;}
ProcControl(CheckBox[] boxes)
{
Boxes = boxes;
}
//...
}
在创建CheckBox之后,您需要动态地将控件添加到表单中,并在表单上编写一个标识所有相关控件的方法,并将它们传递给构造函数中的ProcControl。