将多个Checkbox的状态交给业务层的常用方式
Common way to handover the status of multiple Checkboxes to Business-layer
我有一个三层架构。顶层是我的 GUI,第二层是我的业务 类。在 GUI 上有许多复选框(+20 项)和一个可用的 "Start" 按钮。如果用户单击按钮,我想通过构造函数将复选框的状态移交给业务对象。
传递 List<Checkbox>
不是合适的方式,解决方案应该灵活变化。此外,我需要能够识别业务层上的复选框状态。有解决这个问题的共同可能性吗?
这是我的问题的一个例子:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 0; i < 20; i++)
{
flowLayoutPanel1.Controls.Add(CreateCheckbox(i));
}
var button = new Button();
button.Name = "StartButton";
button.Text = "Start";
button.Click += new EventHandler(button_Click);
flowLayoutPanel1.Controls.Add(button);
}
private void button_Click(object sender, EventArgs e)
{
var businessObject
= new BusinessClass(/*How to handover the checkbox status*/);
}
private CheckBox CreateCheckbox(int index)
{
var checkBox = new CheckBox();
checkBox.Name = "checkBox" + index;
checkBox.Text = "checkBox" + index;
return checkBox;
}
}
一种方法是创建一个自定义界面,您可以在其中包含一个 GetStatus() 方法。
IStatus
{
bool GetStatus();
}
然后你可以创建另一个 class 并调用它继承自 IStatus 的状态,你可以在构造函数中传递一个 IStatus 列表,这个概念被称为 依赖倒置.
Status : IStatus
{
bool Status {get;set;}
bool GetStatus()
{
return Status;
}
}
现在您所要做的就是将 List 传递到您的 constructor.This 中,这样您就可以在以后灵活地传递来自 [=33] 的任何类型控件的信息=]层.
BusinessLayer(List<IStatus> statusObjects)
{
}
您所要做的就是创建继承 IStatus 的 custom classes 并传递它,您的 BusinessLayer逻辑永远不会改变。
我有一个三层架构。顶层是我的 GUI,第二层是我的业务 类。在 GUI 上有许多复选框(+20 项)和一个可用的 "Start" 按钮。如果用户单击按钮,我想通过构造函数将复选框的状态移交给业务对象。
传递 List<Checkbox>
不是合适的方式,解决方案应该灵活变化。此外,我需要能够识别业务层上的复选框状态。有解决这个问题的共同可能性吗?
这是我的问题的一个例子:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
for (int i = 0; i < 20; i++)
{
flowLayoutPanel1.Controls.Add(CreateCheckbox(i));
}
var button = new Button();
button.Name = "StartButton";
button.Text = "Start";
button.Click += new EventHandler(button_Click);
flowLayoutPanel1.Controls.Add(button);
}
private void button_Click(object sender, EventArgs e)
{
var businessObject
= new BusinessClass(/*How to handover the checkbox status*/);
}
private CheckBox CreateCheckbox(int index)
{
var checkBox = new CheckBox();
checkBox.Name = "checkBox" + index;
checkBox.Text = "checkBox" + index;
return checkBox;
}
}
一种方法是创建一个自定义界面,您可以在其中包含一个 GetStatus() 方法。
IStatus
{
bool GetStatus();
}
然后你可以创建另一个 class 并调用它继承自 IStatus 的状态,你可以在构造函数中传递一个 IStatus 列表,这个概念被称为 依赖倒置.
Status : IStatus
{
bool Status {get;set;}
bool GetStatus()
{
return Status;
}
}
现在您所要做的就是将 List 传递到您的 constructor.This 中,这样您就可以在以后灵活地传递来自 [=33] 的任何类型控件的信息=]层.
BusinessLayer(List<IStatus> statusObjects)
{
}
您所要做的就是创建继承 IStatus 的 custom classes 并传递它,您的 BusinessLayer逻辑永远不会改变。