Rick,
>So basically the bizobj has two tables - the primary one is pointed to by the TableName. The second table is named as a concatenation of the first table name, and "AnyAll". So if the table name were "Order", the second table would be named "OrderAnyAll". Therefore, the BindingSourceMember is set to "OrderAnyAll.All"
>
>The grid registers fine, but when I step through the mmBindingStrategySimple.RegisterBoundControl(this.chkAll) call, I reach a line of code in mmBindingStrategySimple.BindData(mmControl,mmBusinessObject,mmBusinessStateChange) - line 567 in mmBindingStrategy.cs:
>
>// Only data bind if the table that changed is the same as the
>// table (or DataView table) to which this control is bound
>if (DataTableName.ToLower() == e.TableName.ToLower() && !mmString.Empty(MemberName))
> {
>
>
>DataTableName.ToLower() is "orderanyall" and e.TableName.ToLower() is "order" and MemberName is "All", so the binding code within the if statement never runs due to the difference in table names.
When you call a business object method that fills "Order", then e.TableName will be "Order". When you call a business object method that fills the OrderAnyAll table, then e.TableName will be "OrderAnyAll". Are you specifically calling a business object method to fill the OrderAnyAll table?
Are you not seeing this?
Best Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com