﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » Issues  » IsDirtyChanged Fires and BO position changes After .Save is called with broken rules</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Wed, 17 Jun 2026 18:19:23 GMT</lastBuildDate><ttl>20</ttl><item><title>IsDirtyChanged Fires and BO position changes After .Save is called with broken rules</title><link>http://forum.strataframe.net/FindPost19745.aspx</link><description>Hello,&lt;br&gt;
I am having a serious issue with BO state: When Bo.Save is executed, it fires IsDirtyChanged event, and it looks like position moves to the first row. I have a breakpoint in Navigated and IsDirtyChanged, even though it does not stop on the breakpoint in Navigated, it does stop in IsDirtyChanged, and when I output ?bo.CurrentRowIndex in immediate window it says "0" which is not the same position when .Save was called. What's going on?&lt;br&gt;
Thanks.</description><pubDate>Fri, 26 Sep 2008 09:53:48 GMT</pubDate><dc:creator>Leonard P.</dc:creator></item><item><title>RE: IsDirtyChanged Fires and BO position changes After .Save is called with broken rules</title><link>http://forum.strataframe.net/FindPost19771.aspx</link><description>Well, there are a couple points here.&lt;br&gt;
1) The IsDirtyChanged event will only be fired [i]after[/i] saving for those rows that were dirty. This makes sense if you think about it. The IsDrityChanged event gets fired whenever a "clean" row becomes dirty [i]or[/i] when a "dirty" row becomes clean. So if you aren't managing UI states automatically, and just start typing into a field bound to a populated BO, it will fire the IsDirtyChanged event. In the same token, if you go to save that row, the IsDirtyChanged event will be fired after the save since the row state is no longer dirty.&lt;br&gt;
&lt;br&gt;
2) The Navigated event will [i]not[/i] be fired during a save. The difference between "Navigate" and "Move" is that a navigate will update the bound controls. Since the save just iterates through the records in the BO so that it can CheckRulesOnCurrentRow it does [i]not[/i] need to update the UI, and as such is performing a [i]move[/i], which will [i]not[/i] fire the Navigated event.&lt;br&gt;
&lt;br&gt;
So, it will iterate through your BO on a save and try to save any dirty records. The CurrentRowIndex will change in the middle of that iteration to reflect the movement through the BO, but once it is finished it will be restored to it's original position.</description><pubDate>Fri, 26 Sep 2008 09:53:48 GMT</pubDate><dc:creator>Dustin Taylor</dc:creator></item></channel></rss>