Feb 24, 2013 at 7:34 PM
Edited Feb 24, 2013 at 7:42 PM
I'm struggling with the following scenario and i don't now if Prism is capable of accomplishing it or not?
I have the following scenario:
1-NavigationRegion: contains tow tabs CustomerList, OrdersList
2-Main Region: Tabbed Region (TabControl)
3-Details Region : display details of the object in the selected tab in Main Region
When Customer is selected in customerList: event is published of Customer object where subscribers display the following:
MainRegion display a new tab open contains customer object data
DatailsRegion display a group of tabs contains: Orders, Contacts, History, ...each in different tab
1-When many tabs are open in MainRegion, each contain different customer when i click a previous customer tab header the Details region still display the data belong the last customer selected from the customer list.how to make tab content in details region
change with clicking different tabs (it change only w/ selecting Customer in CustomerList) - i tried to make ShellWindow publish an event when tab header is selected but i don't know how to transfere
the customer object in the selected tab from xaml to the view model to publish it.
2-Now if i selected an Order in OrderList in NavigationRegion Tabs representing Order Objects are open in MainRegion beside the Customer tabs,i need different user control contain different group of tabs pertaining to Order object to be displayed in DetailsRegion
same way like Customer details how to replace user control containing tabs belonging to Customer object with user control containing tabs belonging to Order Object
Plzzz i need somebody to till me if this is possible or not and if possible how?
Based on my understanding of your problem, I think that a possible solution for both cases could be subscribing to the event raised when the active view changes in the
. This way, when you click on a previous tab or open a new one (from Customers or Orders), since tabbed controls can only have 1 active view at the moment, the
event will be raised and you will be able to get the necessary information from the
collection item to update the Details
In order to subscribe to the ActiveViews.CollectionChanged
event, you can use the following code snippet:
this.regionManager.Regions["MainRegion"].ActiveViews.CollectionChanged += ActiveViews_CollectionChangedHandler;
Also, in order to be able to update the Details
regions correctly when switching between Customers and Orders, you should wipe out all views from the
region (which are related to the previous tab) and load the new ones using the approach mentioned above.
I hope you find this useful,