﻿<?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  » Problem after upgrade to 1.6.1</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Tue, 09 Jun 2026 06:24:49 GMT</lastBuildDate><ttl>20</ttl><item><title>Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13577.aspx</link><description>Hi,&lt;br&gt;
I am facing problem after upgrade 1.6.1. Now, whenever I click new button, I will hit error below even though I have set AllowNullValueOnNewRow = false. Before this, everything just working fine. Any ideas?&lt;br&gt;
&lt;br&gt;
System.InvalidCastException was unhandled by user code&lt;br&gt;
  Message="Specified cast is not valid."&lt;br&gt;
  Source="InventoryBusinessObject"&lt;br&gt;
  StackTrace:&lt;br&gt;
       at JK.Inventory.Product.BusinessObject.ItemsBO.get_Recalled() in F:\Projects\Inventory\InventoryBusinessObject\Product\ItemsBO.Designer.cs:line 980&lt;br&gt;
       at JK.Inventory.Product.BusinessObject.ItemsBO.Field_Recalled_Descriptor.GetValue(Object component) in F:\Projects\Inventory\InventoryBusinessObject\Product\ItemsBO.Designer.cs:line 2545&lt;br&gt;
       at System.Windows.Forms.BindToObject.GetValue()&lt;br&gt;
       at System.Windows.Forms.Binding.PushData(Boolean force)&lt;br&gt;</description><pubDate>Tue, 29 Jan 2008 08:58:44 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13814.aspx</link><description>Glad you found your problem...I didn't think that the update would have made a difference, so I am glad you got it going :)</description><pubDate>Tue, 29 Jan 2008 08:58:44 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13813.aspx</link><description>No problem... I'm glad you found the source of the issue.</description><pubDate>Tue, 29 Jan 2008 08:58:37 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13811.aspx</link><description>Hi,&lt;br&gt;
I found the cause. I have set my BO as Form.PrimaryBusinessObject, I also have dropped a BusinessBindingSource on form which also set the same BO to its BusinessObject property.&lt;br&gt;
&lt;br&gt;
Just FYI, the BBS is already there for long time. Just that it didn't cause problem before upgrade. Strange.&lt;br&gt;
&lt;br&gt;
Anyway, thank you help and sorry for my mistake.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Tue, 29 Jan 2008 01:56:30 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13742.aspx</link><description>Chan,&lt;/P&gt;&lt;P&gt;The ListChanged event has not changed between the releases.&amp;nbsp; First, instead of me trying to disesct a piece of your code from above, it would be better if you could recreate this in a quick sample so I can debug this to tell you where your issue resides.&amp;nbsp; You mentioned that you have implemented the INotifyPropertyChanged event (which I think is the source of this particular problem) but where did you implement this?&amp;nbsp; I think that your implementation is raising the changed event prior to SF which could be causing the problem (an initialization issue).&amp;nbsp; Instead of posting all of the stack trace, I really need more detail about your code, where you are implementhing this logic, and get in a reproducable sample.&amp;nbsp; We have not encountered this type of behaviour anywhere else, so I think this is specific to your code.&amp;nbsp; Any additional details would be helpful.&amp;nbsp; Thanks.</description><pubDate>Sun, 27 Jan 2008 09:49:27 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13741.aspx</link><description>Hi,&lt;br&gt;
Just to summary the call stack posted in previous message.&lt;br&gt;
&lt;br&gt;
I found that, once I assign value to Vendor property (internally CurrentRow["VendorID"]), it cause BusinessLayer.CurrentView_ListChanged fired. It cause .NET BindingManagerBase try to push data back to binded property. It cause recurring cycle.&lt;br&gt;
&lt;br&gt;
Any ideas?&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Sat, 26 Jan 2008 09:14:39 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13721.aspx</link><description>Hi,&lt;br&gt;
The problem just gone after I upgrade to VS 2008. Strange.&lt;br&gt;
&lt;br&gt;
However, I hit stackoverflow exception. &lt;br&gt;
&lt;br&gt;
[codesnippet] 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2417 + 0x3b bytes	Basic&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x10e bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x1a bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChangedInternal(System.ComponentModel.ListChangedEventArgs e) + 0x4b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataViewListener.IndexListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x3c bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged.AnonymousMethod(System.Data.DataViewListener listener, System.ComponentModel.ListChangedEventArgs args, bool arg2, bool arg3) + 0x7 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Notify&lt;System.ComponentModel.ListChangedEventArgs,bool,bool&gt;(System.ComponentModel.ListChangedEventArgs arg1 = {System.ComponentModel.ListChangedEventArgs}, bool arg2 = false, bool arg3 = false, System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Action&lt;System.Data.DataViewListener,System.ComponentModel.ListChangedEventArgs,bool,bool&gt; action = {Method = Cannot evaluate expression because the current thread is in a stack overflow state.}) + 0x75 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x9b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.RecordStateChanged(int oldRecord, System.Data.DataViewRowState oldOldState, System.Data.DataViewRowState oldNewState, int newRecord, System.Data.DataViewRowState newOldState, System.Data.DataViewRowState newNewState) + 0xfa bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.RecordStateChanged(int record1 = 294, System.Data.DataViewRowState oldState1 = Added, System.Data.DataViewRowState newState1 = None, int record2 = 295, System.Data.DataViewRowState oldState2 = None, System.Data.DataViewRowState newState2 = Added) + 0x7f bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow row = {System.Data.DataRow}, int proposedRecord, System.Data.DataRowAction action = Change, bool isInMerge, int position, bool fireEvent = true, out System.Exception deferredException = null) + 0x29d bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecord(System.Data.DataRow row, int proposedRecord, System.Data.DataRowAction action, bool isInMerge, bool fireEvent) + 0x3d bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.EndEdit() + 0x48 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.this[System.Data.DataColumn].set(System.Data.DataColumn column, object value) + 0xe4 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.this[string].set(string columnName, object value) + 0x19 bytes	&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.VendorID.set(System.Guid value = {System.Guid}) Line 452 + 0x43 bytes	C#&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.Field_VendorID_Descriptor.SetValue(object component = {JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO}, object Value = {System.Guid}) Line 1217 + 0x5b bytes	C#&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindToObject.SetValue(object value) + 0x58 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.PullData(bool reformat, bool force) + 0x14f bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.Target_PropertyChanged(object sender, System.EventArgs e) + 0x28 bytes	&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.dll!System.ComponentModel.PropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x4c bytes	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x72 bytes	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnINotifyPropertyChanged(object component, System.ComponentModel.PropertyChangedEventArgs e) + 0x75 bytes	&lt;br&gt;
 	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.FirePropertyChanged(string propertyName = "SelectedValue") Line 914 + 0x29 bytes	C#&lt;br&gt;
 	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValueChanged() Line 920 + 0xd bytes	C#&lt;br&gt;
 	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValue.set(object value = {System.Guid}) Line 802 + 0x7 bytes	C#&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.SetValue(object component = {JK.Framework.UI.Windows.Forms.DevEx.EnhancedLookupEdit}, object value = {System.Guid}) + 0xe3 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.SetPropValue(object value) + 0xc9 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.PushData(bool force) + 0x71 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData(out bool success = true) + 0x50 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData() + 0xe bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyManager.OnCurrentChanged(System.EventArgs ea = {System.EventArgs}) + 0xd bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindToObject.PropValueChanged(object sender, System.EventArgs e) + 0x23 bytes	&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2417 + 0x3b bytes	Basic&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x10e bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x1a bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChangedInternal(System.ComponentModel.ListChangedEventArgs e) + 0x4b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataViewListener.IndexListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x3c bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged.AnonymousMethod(System.Data.DataViewListener listener, System.ComponentModel.ListChangedEventArgs args, bool arg2, bool arg3) + 0x7 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Notify&lt;System.ComponentModel.ListChangedEventArgs,bool,bool&gt;(System.ComponentModel.ListChangedEventArgs arg1 = {System.ComponentModel.ListChangedEventArgs}, bool arg2 = false, bool arg3 = false, System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Action&lt;System.Data.DataViewListener,System.ComponentModel.ListChangedEventArgs,bool,bool&gt; action = {Method = Cannot evaluate expression because the current thread is in a stack overflow state.}) + 0x75 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x9b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.RecordStateChanged(int oldRecord, System.Data.DataViewRowState oldOldState, System.Data.DataViewRowState oldNewState, int newRecord, System.Data.DataViewRowState newOldState, System.Data.DataViewRowState newNewState) + 0xfa bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.RecordStateChanged(int record1 = 293, System.Data.DataViewRowState oldState1 = Added, System.Data.DataViewRowState newState1 = None, int record2 = 294, System.Data.DataViewRowState oldState2 = None, System.Data.DataViewRowState newState2 = Added) + 0x7f bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow row = {System.Data.DataRow}, int proposedRecord, System.Data.DataRowAction action = Change, bool isInMerge, int position, bool fireEvent = true, out System.Exception deferredException = null) + 0x29d bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecord(System.Data.DataRow row, int proposedRecord, System.Data.DataRowAction action, bool isInMerge, bool fireEvent) + 0x3d bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.EndEdit() + 0x48 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.this[System.Data.DataColumn].set(System.Data.DataColumn column, object value) + 0xe4 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataRow.this[string].set(string columnName, object value) + 0x19 bytes	&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.VendorID.set(System.Guid value = {System.Guid}) Line 452 + 0x43 bytes	C#&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO.Field_VendorID_Descriptor.SetValue(object component = {JK.Inventory.Purchasing.BusinessObject.ReturnNotesBO}, object Value = {System.Guid}) Line 1217 + 0x5b bytes	C#&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindToObject.SetValue(object value) + 0x58 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.PullData(bool reformat, bool force) + 0x14f bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.Target_PropertyChanged(object sender, System.EventArgs e) + 0x28 bytes	&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.dll!System.ComponentModel.PropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x4c bytes	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnValueChanged(object component, System.EventArgs e) + 0x72 bytes	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnINotifyPropertyChanged(object component, System.ComponentModel.PropertyChangedEventArgs e) + 0x75 bytes	&lt;br&gt;
&gt;	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.FirePropertyChanged(string propertyName = "SelectedValue") Line 914 + 0x29 bytes	C#&lt;br&gt;
 	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValueChanged() Line 920 + 0xd bytes	C#&lt;br&gt;
 	JK Framework Inherited UI.dll!JK.Framework.UI.Windows.Forms.DevEx.LookupEdit.SelectedValue.set(object value = {System.Guid}) Line 802 + 0x7 bytes	C#&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.dll!System.ComponentModel.ReflectPropertyDescriptor.SetValue(object component = {JK.Framework.UI.Windows.Forms.DevEx.EnhancedLookupEdit}, object value = {System.Guid}) + 0xe3 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.SetPropValue(object value) + 0xc9 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.Binding.PushData(bool force) + 0x71 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData(out bool success = true) + 0x50 bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindingManagerBase.PushData() + 0xe bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.PropertyManager.OnCurrentChanged(System.EventArgs ea = {System.EventArgs}) + 0xd bytes	&lt;br&gt;
 	System.Windows.Forms.dll!System.Windows.Forms.BindToObject.PropValueChanged(object sender, System.EventArgs e) + 0x23 bytes	&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2417 + 0x3b bytes	Basic&lt;br&gt;
 	[Native to Managed Transition]	&lt;br&gt;
 	[Managed to Native Transition]	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x10e bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChanged(object sender, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) + 0x1a bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataView.IndexListChangedInternal(System.ComponentModel.ListChangedEventArgs e) + 0x4b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataViewListener.IndexListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x3c bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged.AnonymousMethod(System.Data.DataViewListener listener, System.ComponentModel.ListChangedEventArgs args, bool arg2, bool arg3) + 0x7 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Notify&lt;System.ComponentModel.ListChangedEventArgs,bool,bool&gt;(System.ComponentModel.ListChangedEventArgs arg1 = {System.ComponentModel.ListChangedEventArgs}, bool arg2 = false, bool arg3 = false, System.Data.Listeners&lt;System.Data.DataViewListener&gt;.Action&lt;System.Data.DataViewListener,System.ComponentModel.ListChangedEventArgs,bool,bool&gt; action = {Method = Cannot evaluate expression because the current thread is in a stack overflow state.}) + 0x75 bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedEventArgs e) + 0x9b bytes	&lt;br&gt;
 	System.Data.dll!System.Data.Index.RecordStateChanged(int oldRecord, System.Data.DataViewRowState oldOldState, System.Data.DataViewRowState oldNewState, int newRecord, System.Data.DataViewRowState newOldState, System.Data.DataViewRowState newNewState) + 0xfa bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.RecordStateChanged(int record1 = 292, System.Data.DataViewRowState oldState1 = Added, System.Data.DataViewRowState newState1 = None, int record2 = 293, System.Data.DataViewRowState oldState2 = None, System.Data.DataViewRowState newState2 = Added) + 0x7f bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow row = {System.Data.DataRow}, int proposedRecord, System.Data.DataRowAction action = Change, bool isInMerge, int position, bool fireEvent = true, out System.Exception deferredException = null) + 0x29d bytes	&lt;br&gt;
 	System.Data.dll!System.Data.DataTable.SetNewRecord(System.Data.DataRow row, int proposedRecord, System.Data.DataRowAction action, bool isInMerge, bool fireEvent) + 0x3d bytes	&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
Below is my code for INotifyPropertyChanged&lt;br&gt;
&lt;br&gt;
[codesnippet]        #region INotifyPropertyChanged Members&lt;br&gt;
&lt;br&gt;
        public event PropertyChangedEventHandler PropertyChanged;&lt;br&gt;
&lt;br&gt;
        protected bool CheckPropertyChanged&lt;T&gt;(string propertyName, ref T oldValue, ref T newValue)&lt;br&gt;
        {&lt;br&gt;
            if (oldValue == null &amp;&amp; newValue == null)&lt;br&gt;
            {&lt;br&gt;
                return false;&lt;br&gt;
            }&lt;br&gt;
&lt;br&gt;
            if ((oldValue == null &amp;&amp; newValue != null) || !oldValue.Equals((T)newValue))&lt;br&gt;
            {&lt;br&gt;
                oldValue = newValue;&lt;br&gt;
&lt;br&gt;
                FirePropertyChanged(propertyName);&lt;br&gt;
&lt;br&gt;
                return true;&lt;br&gt;
            }&lt;br&gt;
&lt;br&gt;
            return false;&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        protected void FirePropertyChanged(string propertyName)&lt;br&gt;
        {&lt;br&gt;
            if (this.PropertyChanged != null)&lt;br&gt;
            {&lt;br&gt;
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        protected void SelectedValueChanged()&lt;br&gt;
        {&lt;br&gt;
            FirePropertyChanged("SelectedValue");&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        #endregion&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
Please advice.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Thu, 24 Jan 2008 22:56:29 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13717.aspx</link><description>[quote][b]Chan (01/24/2008)[/b][hr]&lt;/P&gt;&lt;P&gt;Any ideas to solve it? Is it a bug? This problem not occured in prior version.&lt;BR&gt;&lt;BR&gt;[/quote]&lt;/P&gt;&lt;P&gt;Hey Chan,&lt;/P&gt;&lt;P&gt;Not sure if this will help, but I would do one of two things in this situation to start troubleshooting.&amp;nbsp; The first relates to the Business Object Mapper.&amp;nbsp; Within it, if the subtotal field is part of you database schema, I would set the field to Return Alternate on Null...perhaps with a 0.&amp;nbsp; Second, if that does not work, I would make the subtotal a custom property of the business object and always make sure&amp;nbsp;a number if returned...my default, of course, is 0.&lt;/P&gt;&lt;P&gt;Not sure why this issue would pop up in the current release of StrataFrame.&amp;nbsp; I suppose there could be a breaking change in there somewhere.&lt;/P&gt;&lt;P&gt;Hope that helps,&lt;BR&gt;Bill</description><pubDate>Thu, 24 Jan 2008 11:21:10 GMT</pubDate><dc:creator>Bill Cunnien</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13716.aspx</link><description>Hi,&lt;br&gt;
Yes, SubTotal property is null when _CurrentDataTable.Rows.Add(loRow) in BusinessLayer.NewRow(). However, I have set AllowNullOnNewRow to false so that it will call InitializeNewRow() to initialize my columns value.&lt;br&gt;
&lt;br&gt;
Unfortunely, the error occurred before AllowNullOnNewRow checking.&lt;br&gt;
&lt;br&gt;
Any ideas to solve it? Is it a bug? This problem not occured in prior version.&lt;br&gt;
&lt;br&gt;
Please advice.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Thu, 24 Jan 2008 10:50:34 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13715.aspx</link><description>Is the SubTotal property of the BO returning a null value?&amp;nbsp; I've had similar stack traces when I ran into that issue.&lt;/P&gt;&lt;P&gt;Bill</description><pubDate>Thu, 24 Jan 2008 10:34:05 GMT</pubDate><dc:creator>Bill Cunnien</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13714.aspx</link><description>Hi,&lt;br&gt;
Below is another call stack which is NOT using BusinessBindingSource.&lt;br&gt;
&lt;br&gt;
[codesnippet]&gt;	InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.Recalled.get() Line 980 + 0x2e bytes	C#&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.Field_Recalled_Descriptor.GetValue(object component = { [JK.Inventory.Product.BusinessObject.ItemsBO]}) Line 2545 + 0x29 bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.AddBinding(System.Windows.Forms.Control ControlToRefresh = {MicroFour.StrataFrame.UI.Windows.Forms.CheckBox}, String PropertyName = "Checked", String FieldName = "Recalled") Line 2087 + 0x17 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.RefreshControl(MicroFour.StrataFrame.UI.Windows.Forms.IBusinessBindable ControlToRefresh = {MicroFour.StrataFrame.UI.Windows.Forms.CheckBox}, Boolean DataPresent = True) Line 3399 + 0x3f bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.RefreshBoundControls() Line 3291 + 0x11 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_Navigated(MicroFour.StrataFrame.Business.NavigatedEventArgs e = {MicroFour.StrataFrame.Business.NavigatedEventArgs}) Line 1369 + 0x9 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnNavigated(MicroFour.StrataFrame.Business.NavigatedEventArgs e = {MicroFour.StrataFrame.Business.NavigatedEventArgs}) Line 1384 + 0xc bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0, Object() PrimaryKeyValues = Nothing, Boolean AttemptToCheckRules = True, Boolean IsRefill = False) Line 3205 + 0x10 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0, Object() PrimaryKeyValues = Nothing) Line 3058 + 0x17 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Navigate(MicroFour.StrataFrame.Business.BusinessNavigationDirection Direction = MicroFour.StrataFrame.Business.BusinessNavigationDirection.Absolute, Integer AbsoluteIndex = 0) Line 7108 + 0x11 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.CurrentChanged(Object sender = {System.Windows.Forms.CurrencyManager}, System.EventArgs e = {System.EventArgs}) Line 669 + 0x29 bytes	Basic&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 123 + 0x1b bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.BusinessObject_IsDirtyChanged(Object sender = {JK.Inventory.Product.BusinessObject.ItemsBO}, System.EventArgs e = {System.EventArgs}) Line 705 + 0x21 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_IsDirtyChanged(Object sender = {JK.Inventory.Product.BusinessObject.ItemsBO}, System.EventArgs e = {System.EventArgs}) Line 1071 + 0x21 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnIsDirtyChanged(Boolean DirtyShouldBe = True) Line 1086 + 0x12 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2431 + 0x10 bytes	Basic&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.NewRow() Line 6312 + 0x23 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity = True) Line 7610 + 0xa bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.UI.Windows.Forms.BaseForm.Add(Boolean CheckSecurity = True) Line 2168 + 0xe bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.UI.Windows.Forms.MaintenanceFormToolStrip.cmdNew_Click(Object sender = {System.Windows.Forms.ToolStripButton}, System.EventArgs e = {System.EventArgs}) Line 1272 + 0x1a bytes	Basic&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.Application.StrataFrameApplication.RunApplication() Line 220 + 0x8 bytes	Basic&lt;br&gt;
 	InventoryApplication.exe!JK.Inventory.Application.AppMain.Main() Line 45 + 0x6 bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Thu, 24 Jan 2008 10:31:34 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13711.aspx</link><description>Hi,&lt;br&gt;
Thank you for source code.&lt;br&gt;
&lt;br&gt;
I have recompile SF and run my program and able to reproduce my problem again. Below is the call stack, please advice:&lt;br&gt;
&lt;br&gt;
[codesnippet]&gt;	SaleBusinessObject.dll!JK.Inventory.Sale.BusinessObject.SaleDetailsBO.SubTotal.get() Line 463 + 0x34 bytes	C#&lt;br&gt;
 	SaleBusinessObject.dll!JK.Inventory.Sale.BusinessObject.SaleDetailsBO.Field_SubTotal_Descriptor.GetValue(object component = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}) Line 1056 + 0x2c bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 123 + 0x1b bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessBindingSource.BusinessObject_IsDirtyChanged(Object sender = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}, System.EventArgs e = {System.EventArgs}) Line 705 + 0x21 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.raise_IsDirtyChanged(Object sender = {JK.Inventory.Sale.BusinessObject.SaleDetailsBO}, System.EventArgs e = {System.EventArgs}) Line 1071 + 0x21 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.OnIsDirtyChanged(Boolean DirtyShouldBe = True) Line 1086 + 0x12 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.CurrentView_ListChanged(Object sender = {System.Data.DataView}, System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) Line 2431 + 0x10 bytes	Basic&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.NewRow() Line 6312 + 0x23 bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity = True) Line 7610 + 0xa bytes	Basic&lt;br&gt;
 	MicroFour StrataFrame Business.dll!MicroFour.StrataFrame.Business.BusinessLayer.Add() Line 7580 + 0xe bytes	Basic&lt;br&gt;
 	POSApplication.exe!JK.POS.UI.Windows.Forms.POSForm.AddSale() Line 94 + 0xe bytes	C#&lt;br&gt;
 	POSApplication.exe!JK.POS.UI.Windows.Forms.POSForm.cmdNew_ItemClick(object sender = {DevExpress.XtraBars.Ribbon.RibbonBarManager}, DevExpress.XtraBars.ItemClickEventArgs e = {DevExpress.XtraBars.ItemClickEventArgs}) Line 88 + 0x7 bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	MicroFour StrataFrame UI.dll!MicroFour.StrataFrame.Application.StrataFrameApplication.RunApplication() Line 220 + 0x8 bytes	Basic&lt;br&gt;
 	POSApplication.exe!JK.POS.Application.AppMain.Main() Line 40 + 0x6 bytes	C#&lt;br&gt;
 	[External Code]	[/codesnippet]&lt;br&gt;
&lt;br&gt;
Below is the code at AddSale()&lt;br&gt;
[codesnippet]&lt;br&gt;
        private void AddSale()&lt;br&gt;
        {&lt;br&gt;
            this.Add();&lt;br&gt;
            saleDetailsBO.Add();&lt;br&gt;
        }&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Thu, 24 Jan 2008 10:15:51 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13686.aspx</link><description>OK...if you login to the My Account area, you should be able to see the Source Code Setup for the 1.6.5 beta.&amp;nbsp; This way you can be running on the beta and still get the source code.</description><pubDate>Wed, 23 Jan 2008 11:34:33 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13681.aspx</link><description>Chan,&lt;/P&gt;&lt;P&gt;There is no reason that we could not publish this code.&amp;nbsp; I need to get it ready on this side and try to have it posted by tomorrow.</description><pubDate>Wed, 23 Jan 2008 09:47:04 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13632.aspx</link><description>Hi,&lt;br&gt;
I have successfully reverted back all SF assemblies. And now my application is working fine. So, I am sure something goes wrong with the latest 1.6.1 as posted at forum. Either my mistake or SF source code bug. How could I clarify this?&lt;br&gt;
&lt;br&gt;
I tried to disassembly MicroFour Strataframe Business.dll, but failed&lt;br&gt;
&lt;br&gt;
System.IndexOutOfRangeException: Index was outside the bounds [of] the array.&lt;br&gt;
   at Reflector.CodeModel.Memory.ParameterDeclarationCollection.get_Item(Int32 index)&lt;br&gt;
   at ᜢ.ᜀ.ᜁ(IEventDeclaration A_0)&lt;br&gt;
   at ᜢ.ᜀ.ᜃ(ITypeDeclaration A_0)&lt;br&gt;
   at ᜢ.ᜀ.ᜀ(INamespace A_0)&lt;br&gt;
   at ភ.ᜀ(ITypeDeclaration A_0, String A_1, ILanguageWriterConfiguration A_2)&lt;br&gt;
Imports MicroFour.StrataFrame&lt;br&gt;
Imports MicroFour.StrataFrame.Data&lt;br&gt;
&lt;br&gt;
I need to changes of Browse Dialog Date setting. Please help.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Tue, 22 Jan 2008 12:57:57 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13597.aspx</link><description>Hi,&lt;br&gt;
Any possible to get the full source code for 1.6.1 (as posted at forum) so that I could debug?&lt;br&gt;
&lt;br&gt;
You helps are much appreciated.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Mon, 21 Jan 2008 11:06:20 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13596.aspx</link><description>Hi.&lt;br&gt;
Just curious, any ideas why didn't the error happen in prior version? Anything changed?</description><pubDate>Mon, 21 Jan 2008 10:42:45 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13595.aspx</link><description>Hi,&lt;br&gt;
&lt;br&gt;
&gt;	InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.CategoryID.get() Line 452 + 0x2e bytes	C#&lt;br&gt;
 	InventoryBusinessObject.dll!JK.Inventory.Product.BusinessObject.ItemsBO.Field_CategoryID_Descriptor.GetValue(object component = {JK.Inventory.Product.BusinessObject.ItemsBO}) Line 1841 + 0x29 bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
 	InventoryApplication.exe!JK.Inventory.Application.AppMain.Main() Line 45 + 0x6 bytes	C#&lt;br&gt;
 	[External Code]	&lt;br&gt;
&lt;br&gt;
I checked my code again, and found that as you suspected it might be caused by data binding. It works fine If I just &lt;br&gt;
[codesnippet]&lt;br&gt;
ItemsBO loBO = new ItemsBO();&lt;br&gt;
loBO.Add();[/codesnippet]&lt;br&gt;
&lt;br&gt;
In my project, the error happen at least two fields which :-&lt;br&gt;
&lt;br&gt;
1. Bind to SF's check box&lt;br&gt;
2. Custom lookup control inherited from DevExpress lookupedit.&lt;br&gt;
&lt;br&gt;
How should I check next?</description><pubDate>Mon, 21 Jan 2008 10:39:52 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13592.aspx</link><description>Is there more to the stack trace, or is what you posted in the first post all of it?&amp;nbsp; I'm wondering if we could get back to what is causing the binding to update immediately after you add the new row... the binding shouldn't be updating until after all of the values are initialized and the SetDefaultValues() is called.</description><pubDate>Mon, 21 Jan 2008 09:56:27 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13589.aspx</link><description>Hi,&lt;br&gt;
&lt;br&gt;
1) Are you explicitly setting the value of the Recalled field to DBNull.Value in the SetDefaultValues()?&lt;br&gt;
&lt;br&gt;
No, I doesn't set DBNull.Value to recalled field. Beside, the error occurred BEFORE SetDefaultValues event fired.&lt;br&gt;
&lt;br&gt;
2) Are any of the other fields in the new row DBNull.Value also, or just the Recalled field?&lt;br&gt;
&lt;br&gt;
It happen to ALL fields.&lt;br&gt;
&lt;br&gt;
3) Is it trying to cast a DBNull.Value to a Boolean, or something else?&lt;br&gt;
&lt;br&gt;
To Boolean. The same problem happen to other fields as well, which is integer.&lt;br&gt;
&lt;br&gt;
Please advice. It is urgent.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Mon, 21 Jan 2008 09:04:29 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13586.aspx</link><description>1) Are you explicitly setting the value of the Recalled field to DBNull.Value in the SetDefaultValues()?&lt;/P&gt;&lt;P&gt;2) Are any of the other fields in the new row DBNull.Value also, or just the Recalled field?&lt;/P&gt;&lt;P&gt;3) Is it trying to cast a DBNull.Value to a Boolean, or something else?</description><pubDate>Mon, 21 Jan 2008 08:45:32 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13582.aspx</link><description>Hi,&lt;br&gt;
Just to add on, 1.6.1 mentioned is refering to assemblies posted in forum as patch.&lt;br&gt;
&lt;br&gt;
Thank you</description><pubDate>Sun, 20 Jan 2008 04:56:38 GMT</pubDate><dc:creator>Chan</dc:creator></item><item><title>RE: Problem after upgrade to 1.6.1</title><link>http://forum.strataframe.net/FindPost13578.aspx</link><description>I tried to restore back those DLL, but it will crash VS, cause I am unable to open my project.&lt;br&gt;
&lt;br&gt;
Please advice. URGENT!!!</description><pubDate>Sat, 19 Jan 2008 19:26:19 GMT</pubDate><dc:creator>Chan</dc:creator></item></channel></rss>