I am taking a step back to try and clear things up a bit. Can I ask some theoretical type questions to see if I'm progressing in a sensible direction?
My ShellView is (now) a Window (I'm not sure why I originally made it a UserControl). The corresponding ShellVM implements/extends
1: Does the TabControl need to be called 'Items' for the purposes of the Conductor? (I'm not worried if it's not, I'm just checking I understand.)
I have a number of Views (all UserControls) to display data that can be one of two types. One type is essentially a TabItem and can be added directly to the TabControl, the other type is just gui widgets. The TabItem type view contains gui widgets and may have a widget-type view of its own. This mix is to allow master-detail displays (eg from Caller to Calls, and from Call to CallQueries).
2: Is the above composition sensible?
3: The VMs for the TabItem views extend a TabViewModel class, the VMs for the widget views extend Screen. Does this make sense?
4: What do my ViewModels export? I'm not sure if each VM should export its own type (eg: for CallerDetailsViewModel - [Export(typeof(CallerDetailsViewModel))]) or whether the TabItem type VMs should export IScreen, and the non-TabItem VMs export something else.
5: Should I have a TabViewModel class and have my TabItem VMs inherit from it? This is the current situation, however 'DisplayName' is the only property displaying data on my CallerDetails, and I'm thinking that this is because it has inherited the property from TabViewModel. If it's only going to display properties from the base class then perhaps it should be the base class itself.
I have dropped StructureMap from the mix and will run with MEF for DI for the time being as the examples use it. With the changes I have made today (including your suggestions above), I'm still getting the same issue, ie, it looks like the data has come across, it's just not being displayed properly anywhere. There's something called the snoop tool for WPF. Do you use it, and do you think it will help locate the missing data in this case?
cheers
cm
My ShellView is (now) a Window (I'm not sure why I originally made it a UserControl). The corresponding ShellVM implements/extends
Conductor<IScreen>.Collection.OneActive, IShell. The view contains a TabControl which will hold my TabItem views.1: Does the TabControl need to be called 'Items' for the purposes of the Conductor? (I'm not worried if it's not, I'm just checking I understand.)
I have a number of Views (all UserControls) to display data that can be one of two types. One type is essentially a TabItem and can be added directly to the TabControl, the other type is just gui widgets. The TabItem type view contains gui widgets and may have a widget-type view of its own. This mix is to allow master-detail displays (eg from Caller to Calls, and from Call to CallQueries).
2: Is the above composition sensible?
3: The VMs for the TabItem views extend a TabViewModel class, the VMs for the widget views extend Screen. Does this make sense?
4: What do my ViewModels export? I'm not sure if each VM should export its own type (eg: for CallerDetailsViewModel - [Export(typeof(CallerDetailsViewModel))]) or whether the TabItem type VMs should export IScreen, and the non-TabItem VMs export something else.
5: Should I have a TabViewModel class and have my TabItem VMs inherit from it? This is the current situation, however 'DisplayName' is the only property displaying data on my CallerDetails, and I'm thinking that this is because it has inherited the property from TabViewModel. If it's only going to display properties from the base class then perhaps it should be the base class itself.
I have dropped StructureMap from the mix and will run with MEF for DI for the time being as the examples use it. With the changes I have made today (including your suggestions above), I'm still getting the same issue, ie, it looks like the data has come across, it's just not being displayed properly anywhere. There's something called the snoop tool for WPF. Do you use it, and do you think it will help locate the missing data in this case?
cheers
cm