前提:我有一个“User”类,它有一个list类型的属性来表示与用户关联的“Office”列表。
我有一个BindingSource与“Office”列表相关联,其中网格被挂钩以插入新元素。
一切似乎都能正常工作,当我点击新行并在列表中写入一个值时会添加到新对象“Office”
问题是除了用户输入的数据我想自动插入一些默认值(例如:一个guid),我知道我可以用我的网格中的隐藏列做这个,但我不喜欢太多的解决方案,我想直接在对象上工作。
我尝试了这个活动
DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
在将新对象“office”添加到列表但我无法恢复之后调用此方法,因为我不知道插入了哪一行但只有一个通用词“ItemAdded”
我也尝试过使用方法
DefaultValuesNeeded(object sender, System.Windows.Forms.DataGridViewRowEventArgs e)
但是在我的对象“office”之前调用了这个,我被添加到列表中,我没有办法设置默认值。
长话短说:如何在不使用隐藏列的情况下从gridview自动手动设置添加到列表的对象属性的值?
答案 0 :(得分:1)
如果从实体框架生成属性“guid”,则可以添加部分类,例如:
public partial class Office
{
public Office()
{
guid=Guid.newGuid();
}
}
并添加一个构造函数,在创建新办公室时填充guid属性。