再MRWin中,主要有以下几个条件会影响到CurrentCell变化时的事件顺序。1. 变化是由数据源的Current变化引起的,而不是MultiRow引起的。2. CurrentCell移出了当前行3. 当前Cell正处于编辑状态4. 当前Cell处于编辑状态并且当前值已经变化但没有提交到数据源。5. EditMode设置为EditOnEnter下面是整个过程中的主要事件及触发顺序和条件:1. NewCellPositionNeeded (只有条件1不满足时触发)2. CellLeave3. RowLeave (只有条件2满足时触发)4. CellValidating (只有条件1不满足时触发)5. CellValueChanged (只有条件1不满足,条件4满足时触发。因为,如果是数据源的变化引起的变化,当前编辑的值会被丢弃。)6. CellValidated (只有条件1不满足时触发)7. RowValidating (只有条件1不满足,且条件2满足时触发)8. RowValidated (只有条件1不满足,且条件2满足时触发)9. EndEdit (当条件3满足时触发)10. RowEnter (只有条件2满足时触发)11. CurrentCellChanged12. CellEnter13. SelectionChanged14. BeginEdit (当条件5满足时触发)15. EditingControlShowing (当条件5满足时触发)以上仅仅是主要的和Navigation, Selection, Editing, Validation相关的事件,在这个过程中还会触发多次CellFormatting事件,CellPainting事件和 CellValueNeeded事件(如果你开启了VirtualMode),如果值发生变化(条件4满足),会触发CellParsing和 CellValuePushed事件。这里就不在详述了。
← 返回所有博客文章