C# BindingSource AddNew()和初始化值
我将ComponentOne FlexGrid绑定到bindingsource,bindingsource绑定到bindinglist集合 用户单击“插入”按钮。我在BindingSource上调用AddNew()。在AddingNew()事件中,我想初始化bindingsource中的属性。通常,如果我想访问网格行下面的数据,我会这样做C# BindingSource AddNew()和初始化值,c#,winforms,data-binding,C#,Winforms,Data Binding,我将ComponentOne FlexGrid绑定到bindingsource,bindingsource绑定到bindinglist集合 用户单击“插入”按钮。我在BindingSource上调用AddNew()。在AddingNew()事件中,我想初始化bindingsource中的属性。通常,如果我想访问网格行下面的数据,我会这样做 MemberSkill skill = (MemberSkill)MemberSkillBS.Current skill.SocSecNo = curren
MemberSkill skill = (MemberSkill)MemberSkillBS.Current
skill.SocSecNo = currentMember.SocSecNo;
但是,当我在
AddingNew()
事件中执行此操作时,Current仍然指向以网格为焦点的行。如何访问添加到绑定源的新项并对其进行初始化?调用AddNew
后,新项将成为当前项
在Insert
按钮处理程序中,您可以执行以下操作:
private void buttonInsert_Click(object sender, EventArgs e)
{
MemberSkill newItem = MemberSkillBS.AddNew() as MemberSkill;
if (newItem != null)
{
MemberSkillBS.Add(newItem);
}
...
}
private void MemberSkillBS_AddingNew(object sender, AddingNewEventArgs e)
{
MemberSkill skill = new MemberSkill
{
SocSecNo = MemberSkillBS.Current.SocSecNo
};
e.NewObject = skill;
}
在添加新的处理程序中,您可以执行以下操作:
private void buttonInsert_Click(object sender, EventArgs e)
{
MemberSkill newItem = MemberSkillBS.AddNew() as MemberSkill;
if (newItem != null)
{
MemberSkillBS.Add(newItem);
}
...
}
private void MemberSkillBS_AddingNew(object sender, AddingNewEventArgs e)
{
MemberSkill skill = new MemberSkill
{
SocSecNo = MemberSkillBS.Current.SocSecNo
};
e.NewObject = skill;
}
在第一次发布未完成之前,新添加的行不会添加到当前BO,直到第一次发布可以撤消此行。发布数据之后,您将从BindingSource获取行。