我正在尝试了解数据表RowChanging
和Rowchanged
事件之间的区别。我检查了 MSDN 博客,但找不到任何实际差异。
这是我得到的:
- 两者都使用相同
Datarowchangeeventargs
:因此它们具有相同的事件数据集。即;e.Action
和e.row
。
在监视窗口中,我检查了这些事件数据是否有任何更改,但它们相似。如果有 Cancel ,RowChanging
那么这将意味着验证。
总而言之,我很困惑为什么这两个事件的意思相同。
请清除我的困惑。
这是我根据从答案中得到的指针发现的差异。
我在列中添加了几行并调用了这两个事件。当我意识到 e.Row 实际上是建议的行时,我尝试对更改和更改的事件执行 e.Row.RejectChanges()。所以 Rejectchanges 给了我错误“不能在行更改事件中取消编辑()”。但它允许在 RowChanged 事件中发生拒绝。所以发生了以下顺序:1.RowChangingEvent e.Action=Added(因为我正在向表中添加多行)e.Row.RowState=Detached。2. RowChanged 事件 e.Action=Added e.Row.RowState=Added (红色,因为它在此处更改并添加到数据表)
至于例外:我收到“不能在行更改事件中调用所有取消编辑()”
在 rowChanged 事件中,我得到“该行已从表中删除并且没有任何数据。BeginEdit() 将允许在该行中创建新数据。”
请指导我上面的行更改事件异常。