我正在Visual Studio 2008/C中编写桌面应用程序#
我(主要)完成了一个引擎的编写,它为一家小公司生成一周的工作时间表;一种课程安排问题的形式。
现在我正在设计一个表单,用户可以在其中确定引擎要遵循的初始参数或条件(因为有些设置是可选的)。
我有一个名为EngineParameters的类,它包含所有这些设置。
为了进行数据绑定,我创建了一个
bn线性参数
类,它用getter和setter封装所有相关字段
public class bndEngineParameters
{
private engineParameters _parameters;
public bndEngineParameters(engineParameters ep)
{
this._parameters = ep;
}
public bool avoidGrouping
{
get { return _parameters.avoidGrouping; }
set { _parameters.avoidGrouping = value; }
}
public bool avoidWeekends
{
get { return _parameters.avoidWeekends; }
set { _parameters.avoidWeekends = value; }
}
public bool keyFlow
{
get { return _parameters.keyFlow; }
set { _parameters.keyFlow = value; }
}
public bool keyFlowAssistants
{
get { return _parameters.keyFlowAssistants; }
set { _parameters.keyFlowAssistants = value; }
}
}
它不完整-将有int值(一个人可以工作的最大小时数等);我希望将这些bool值绑定到表单上的复选框
在那件小事上,我意外地遇到了问题
使用“添加新数据源”向导,我创建了一个绑定源
private System.Windows.Forms.BindingSource bndEngineParametersBindingSource;
然后我把
选中的
我的复选框属性到绑定源的相应属性:
alt text http://i49.tinypic.com/muyhhi.jpg
我实现了一个局部变量
边界参数
以便访问用户设置的参数
public partial class formGenerateRota : Form
{
public bndEngineParameters boundParameters;
public formGenerateRota()
{
InitializeComponent();
}
private void formGenerateRota_Load(object sender, EventArgs e)
{
boundParameters = new bndEngineParameters(new engineParameters());
bndEngineParametersBindingSource.Add(boundParameters);
}
}
那又怎样?什么都没发生。下有一个bndengineParameters对象
bndengineParameters绑定源。当前
(当然是在运行时),但是
避免周末
值永远不会改变(当我选中复选框打开和关闭时),并且
bndengineparametersbindingsource_currentItemChanged
事件从不激发
发生了什么?
对不起的!它确实会改变,但只有在复选框失去焦点(验证后)之后。
我有时候很笨
如果我做错了什么(我不擅长数据绑定),我会非常感谢你指出的当然!