cbordeman
asked on
Make TabControl show contents based on multiple (derived) TabItem Dependency Properties
I'm deriving TabControl to make a control called Wizard. Wizard can only contain instances of WizardPage (derived from TabItem).
WizardPage contains, along with the existing Content, a "TopLeftContent" and "TopRightContent" which the user defines in XAML. My Wizard needs to show all three of these somehow in the display area.
The Wizard's existing template uses a ContentPresenter to display ContentSource="SelectedCon tent", which automagically somehow returns SelectedItem.Content (the currently selected TabItem's Content property). My problem is that I have no idea how to make a ContentPresenter display ContentSource="SelectedIte m.TopLeftC ontent". This syntax isn't supported apparently.
I've looked quite extensively, but I can't seem to figure out how to do this w/o exposing another DP that the user will foolishly want to bind to. I need this to work against the SelectedItem.
Is there a way?
WizardPage contains, along with the existing Content, a "TopLeftContent" and "TopRightContent" which the user defines in XAML. My Wizard needs to show all three of these somehow in the display area.
The Wizard's existing template uses a ContentPresenter to display ContentSource="SelectedCon
I've looked quite extensively, but I can't seem to figure out how to do this w/o exposing another DP that the user will foolishly want to bind to. I need this to work against the SelectedItem.
Is there a way?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks, saragani, RelativeSource works great. Coming from Silverlight, that solution didn't occur to me.
However, I do need to keep the template on the Wizard because that's the way TabControl (from which I derived) works. It doesn't actually display any TabItems; it just displays their Content. The advantage of using TabControl is it provides a useful set of tabs for design time navigation, which I hide at runtime.
I can't use MVVM directly here simply because this is a control to be used in many places and I can't rely on being bound to any known base viewmodel type.
However, I do need to keep the template on the Wizard because that's the way TabControl (from which I derived) works. It doesn't actually display any TabItems; it just displays their Content. The advantage of using TabControl is it provides a useful set of tabs for design time navigation, which I hide at runtime.
I can't use MVVM directly here simply because this is a control to be used in many places and I can't rely on being bound to any known base viewmodel type.
Can you post your code? It would make it easier to understand what you are doing.