﻿<?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 » Business Objects and Data Access (How do I?)  » Business Binding Source</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 07:02:38 GMT</lastBuildDate><ttl>20</ttl><item><title>Business Binding Source</title><link>http://forum.strataframe.net/FindPost11801.aspx</link><description>I have a Biz object (Biz Obj A) that&amp;nbsp;contains a public property that is another biz obj (Biz obj B). &lt;/P&gt;&lt;P&gt;Both Biz obj A and B are same form and the&amp;nbsp;property on A is pointing to B, Biz Obj A is also&amp;nbsp;the Biz obj in a Bus Binding source that is the data source for a Data Entry Grid.&lt;/P&gt;&lt;P&gt;Biz object A raises and handles a&amp;nbsp;value&amp;nbsp;changed event for one of the fields in the grid. In the handled code it&amp;nbsp;does some calculation and then try's&amp;nbsp;to update some values on&amp;nbsp;biz obj B.&amp;nbsp;&lt;/P&gt;&lt;P&gt;It appears the BBS is creating a new instance of biz obj A so that when Biz Obj A handles the value changed event it is actually being handled by a new instance of A that the Bus binding source creates and thus doesnt "know" about B.&lt;/P&gt;&lt;P&gt;I have just started trying to think of the best way to handle this.. any ideas?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Paul</description><pubDate>Tue, 16 Oct 2007 09:51:08 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost12028.aspx</link><description>I have to guess that the properties that field values you're setting should be unique for each row in the business object, right?&amp;nbsp; Like each row in the business object should have its own _CheckDetail...&lt;/P&gt;&lt;P&gt;There are 2 ways to accomplish that:&lt;/P&gt;&lt;P&gt;1)&amp;nbsp; When you add a handler to the list changed on the data table, add a new column to the data table that stores types of Object:&lt;/P&gt;&lt;P&gt;Me.CurrentDataTable.Columns.Add(New DataColumn("_CheckDetail", GetType(Object)))&lt;/P&gt;&lt;P&gt;This will allow you to store the _CheckDetail business object within the row that is using it.&amp;nbsp; So, each instance used by the BBS points to the correct _CheckDetail instance (obviously, you change your property to return Me.CurrentRow("_CheckDetail") and set it).&lt;/P&gt;&lt;P&gt;2)&amp;nbsp; The other option would be to created a shared property called _CheckDetails that is a dictionary of BoCheckDetail:&lt;/P&gt;&lt;P&gt;Private Shared _CheckDetails As New Dictionary(Of Integer, BoCheckDetail)&lt;/P&gt;&lt;P&gt;You would store all of the check detail business objects in the dictionary and access them by the PK of the current record.&amp;nbsp; This option would be secondary to the first since you would need to remember to clean out the dictionary when you're done because it's shared, so the garbage collector would never clean up the items in it unless you explicitly removed them.</description><pubDate>Tue, 16 Oct 2007 09:51:08 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost12015.aspx</link><description>Hi Ben,&lt;P&gt;The solution you suggested works however it still leaves me with a problem, Any property values that are&amp;nbsp;set in the first BO are&amp;nbsp;gone in the new instance that the business binding source creates. &lt;/P&gt;&lt;P&gt;for example I have a property that references another bus obj, &lt;/P&gt;&lt;FONT size=2&gt;&lt;P&gt;&amp;lt;Category(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Action Labor : Related Business Objects"&lt;/FONT&gt;&lt;FONT size=2&gt;), _&lt;/P&gt;&lt;P&gt;DescriptionAttribute(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Check Detail Business Object"&lt;/FONT&gt;&lt;FONT size=2&gt;)&amp;gt; _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;FONT size=2&gt; CheckDetailBiz() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; Payroll.Business.BoCheckDetail&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;FONT size=2&gt; _CheckDetail &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Is&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Nothing&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;'Do not create a new instance!!!&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; _CheckDetail&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Set&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; value &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; Payroll.Business.BoCheckDetail)&lt;/P&gt;&lt;P&gt;_CheckDetail = value&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Set&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;I have a custom Bindable Property&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' Total Deductions&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;/summary&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;''' &lt;/FONT&gt;&lt;FONT color=#808080 size=2&gt;&amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&amp;lt;Browsable(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/FONT&gt;&lt;FONT size=2&gt;), _&lt;/P&gt;&lt;P&gt;BusinessFieldDisplayInEditor(), _&lt;/P&gt;&lt;P&gt;Description(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"TotalDeductions"&lt;/FONT&gt;&lt;FONT size=2&gt;), _&lt;/P&gt;&lt;P&gt;DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)&amp;gt; _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ReadOnly&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;FONT size=2&gt; [TotalDeductions]() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; System.Decimal&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;.GetTotalDeductions&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Get&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Property&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Protected&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Overrides&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;FONT size=2&gt; GetCustomBindablePropertyDescriptors() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.FieldPropertyDescriptor()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.FieldPropertyDescriptor() { _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"WeekToDateEmployeeHours"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;GetType&lt;/FONT&gt;&lt;FONT size=2&gt;(BOWoLineItem)), _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"WeekToDateCustomerHours"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;GetType&lt;/FONT&gt;&lt;FONT size=2&gt;(BOWoLineItem)), _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"WorkWeek"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;GetType&lt;/FONT&gt;&lt;FONT size=2&gt;(BOWoLineItem)), _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;FONT size=2&gt; MicroFour.StrataFrame.Business.ReflectionPropertyDescriptor( _&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"TotalDeductions"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;GetType&lt;/FONT&gt;&lt;FONT size=2&gt;(BOWoLineItem)) _&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/P&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;and finally the function&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;FONT size=2&gt; GetTotalDeductions() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Decimal&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;' Sum Deductions in checkdetail&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;FONT size=2&gt; lnRetVal &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Decimal&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;This will crash becuase checkdetailbiz is nothing in the spawned instance created by the BBS.&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;lnRetVal = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CType&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;.CheckDetailBiz.CurrentDataTable.Compute(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"sum(cki_amount)"&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"cki_codetype = 21"&lt;/FONT&gt;&lt;FONT size=2&gt;), &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Decimal&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Return&lt;/FONT&gt;&lt;FONT size=2&gt; lnRetVal&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Function&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;This is a pretty big problem for me&amp;nbsp;because&amp;nbsp;I have quite a bit of&amp;nbsp;business logic similar to this that&amp;nbsp;is used in various parts of the application and it all works fine except when bound to a BBS.&lt;/P&gt;&lt;P&gt;Hope that makes sense. &lt;/P&gt;&lt;P&gt;Paul&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Tue, 16 Oct 2007 08:31:43 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11883.aspx</link><description>Thanks Ben that makes sense. I will try to test it out today, thanks</description><pubDate>Fri, 05 Oct 2007 12:32:13 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11879.aspx</link><description>The CurrentView.ListChanged event is the one that you want, but here's the deal... the CurrentView reference changes each time you refill the business object.&amp;nbsp; So, in the sample you gave me, you're adding the event handler too soon (before you fill the object), so it's not being added to the right view.&amp;nbsp; Add a handler to the business object's CurrentDataTableRefilled event and add the handler in there.&amp;nbsp; That way, each time you refill the business object, you'll get the handler added to the new view.&amp;nbsp; You also might want to save off a reference to the view so you can remove the handler from the old view before adding the new one.&lt;/P&gt;&lt;P&gt;Dim _CurrentView As DataView&lt;BR&gt;&lt;BR&gt;Private Sub BusinessObject1_CurrentDataTableRefilled()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Me._CurrentView IsNot Nothing Then RemoveHandler Me._CurrentView.ListChanged, AddressOf TestListChanged&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me._CurrentView = Me.BusinessObject1.CurrentView&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddHandler Me._CurrentView.ListChanged, AddressOf TestListChanged&lt;BR&gt;End Sub</description><pubDate>Fri, 05 Oct 2007 08:56:33 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11851.aspx</link><description>Here is a sample\test app that uses the Strataframe sample data with the bo mapped to the customers table, the&amp;nbsp;event generation in bo mapper is set up as follows. As you can see the event will not get handled in the grid&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://forum.strataframe.net/Uploads/Images/1315dbf9-8cbe-463d-82bc-96c8.png"&gt;</description><pubDate>Thu, 04 Oct 2007 10:53:30 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11849.aspx</link><description>Ben,&lt;/P&gt;&lt;P&gt;I think my head is about to explode. Who thought handling one event could cause this much trouble. The seas are too rough to fish and it is to hot to sit in a treestand so I guess I'm stuck trying to get this to work :angry: &lt;/P&gt;&lt;P&gt;Any ideas you might have on how to make this work would be great</description><pubDate>Thu, 04 Oct 2007 10:28:41 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11830.aspx</link><description>Ben,&lt;/P&gt;&lt;P&gt;Maybe I'm&amp;nbsp;missing something,&amp;nbsp;but the event doesn't seem to get raised either.&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Me&lt;/FONT&gt;&lt;FONT size=2&gt;.CurrentView.ListChanged, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;FONT size=2&gt; TestListChanged&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;FONT size=2&gt; TestListChanged(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Object&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; System.ComponentModel.ListChangedEventArgs)&lt;/P&gt;&lt;P&gt;Diagnostics.Debug.WriteLine(e.ListChangedType.ToString)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;</description><pubDate>Wed, 03 Oct 2007 13:02:48 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11821.aspx</link><description>Yes, that does make sense, and yes, the BBS does create a new instance of the BO for each record that is returned (pointed to the correct record).&amp;nbsp; So, the way you're going to have to handle this would be to add a handler to the business object's CurrentView.ListChanged event.&amp;nbsp; So, when the CurrentDataTable on the business object is filled, add a handler from the form to your business object's CurrentView.ListChanged event (since the CurrentDataTable is shared by all of those instances of the business object that are returned from the BBS), and in the event handler, if the event args indicate that it's an ItemChanged event, then call your logic.&amp;nbsp; But, the CurrentView.ListChanged is going to be the central place to handle that sort of logic; meaning that you can turn off the field changed events on the BO if this is all you're using them for.</description><pubDate>Wed, 03 Oct 2007 09:59:21 GMT</pubDate><dc:creator>StrataFrame Team</dc:creator></item><item><title>RE: Business Binding Source</title><link>http://forum.strataframe.net/FindPost11820.aspx</link><description>Okay here is another way to look at the same problem.&lt;/P&gt;&lt;P&gt;I have business object (A)&lt;/P&gt;&lt;P&gt;A has an Event called wishiworked&amp;nbsp;that is raised when some field's value is changed.&lt;/P&gt;&lt;P&gt;I drop A onto a form&lt;/P&gt;&lt;P&gt;I&amp;nbsp;drop a business binding source&amp;nbsp;and set the bus obj property to A&lt;/P&gt;&lt;P&gt;I drop a grid and wire it up to the BBS.&lt;/P&gt;&lt;P&gt;I change the value of the field that the&amp;nbsp;raises the wishiworked event. but because the event is raised in a new instance my form code below will not work.&lt;/P&gt;&lt;P&gt;I&amp;nbsp;have the following code in the form.&lt;/P&gt;&lt;P&gt;Private sub youwillneverwork(By Val whatever event args I want) handles businessobjectA.wishiworked&lt;/P&gt;&lt;P&gt;msgbox("This will never fire from the Business Binding Source!!!!!!!")&lt;/P&gt;&lt;P&gt;end sub&lt;/P&gt;&lt;P&gt;Maybe that makes a bit more sense&amp;gt;?</description><pubDate>Wed, 03 Oct 2007 09:39:55 GMT</pubDate><dc:creator>Paul Chase</dc:creator></item></channel></rss>