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