Hi Greg, finally got back to this with some details that make more sense. Firstly, thanks for pointing out FourSimpleSteps sample, that provided some insight and now I can get it to work.
In your sample, you have wired up the code behind. You have created a CustomerList class. You got a handle to the DomainModelEntityManager for second time within that class via a new login which I think is the key here. From memory you're using IList and binding the combobox to Name(string) properties on both sides.
In my situation I need to use IDictionary, swapping Name properties with FK ids of Int32 datatypes which imposes more complication around the binding manager, data context of the dataform and associated viewmodel (in prism) and also dataconverters to facilitate matching Int32 values with valid key/value pairs in the combobox dictionary. For storage and retrieval performance of course.
That complication being said, I created the Dictionary as a public property of the viewmodel associated with the view, not a separate class altogether as in your sample. This approach made it simpler for binding manager to use a DataContextProxy to assist navigating the viewmodel properties.
The upshot of your sample and the winning formula was the declaration to get another handle to the DomainModelEntityManager within the CustomerList class. Essentially, this enables a query to be run with is an EntityQuery within its own context, not (it seems) filtered by its parent. In my earlier post I was suspecting DF was doing NavigationQuery.
As a result, I have amended my code to use a NEW DomainModelEntityManager instance in each instantiation of the viewmodel, and now my combobox populates as I need.
However, is this the right thing to do architecturally. I fear scalability will be severely impacted here. As I construct a new child form to edit row details, a new instance of DomainModelEntityManager is created. 20 edits, 20 new instances as evidenced in the log file as UserName = Default Principal - 1, 2, 3, 4 etc.
Your FourSimpleSteps code uses DomainModelEntityManager manager = DomainModelEntityManager.DefaultManager - which is not a new instance, but a separate login is used.
If I use .DefaultManager, it's the same as using the current dmem instance I have already, so it won't work. I have to use = new DomainModelEntityManager(); each time to overcome NavigationQuery issues I've mentioned.
Can you shed some more light on whether I should use this approach, or if there is some other way I can use the same single DomainModelEntityManager instance throughout the entire application yet provide ability to choose whether an Entity Query works in the context of NavigationQuery OR full EntityQuery unencumbered with its navigation neighbors.