Binding one dependency property to another

Posted by Gregory Dodd on Stack Overflow See other posts from Stack Overflow or by Gregory Dodd
Published on 2012-06-22T16:54:30Z Indexed on 2012/06/22 21:16 UTC
Read the original article Hit count: 135

Filed under:
|
|

I have a custom Tab Control that I have created, but I am having an issue. I have an Editable TextBox as part of the custom TabControl View.

<Controls:EditableTextControl x:Name="PageTypeName" 
                                  Style="{StaticResource ResourceKey={x:Type Controls:EditableTextControl}}" Grid.Row="0" TabIndex="0" 
                                  Uid="0"
                                  AutomationProperties.AutomationId="PageTypeNameTextBox"
                                  AutomationProperties.Name="PageTypeName"
                                  Visibility="{Binding ElementName=PageTabControl,Path=ShowPageType}">
        <Controls:EditableTextControl.ContextMenu>
            <ContextMenu x:Name="TabContextMenu">
                <MenuItem Header="Rename Page Type" Command="{Binding Path=PlacementTarget.EnterEditMode, RelativeSource={RelativeSource AncestorType=ContextMenu}}" 
                          AutomationProperties.AutomationId="RenamePageTypeMenuItem"
                          AutomationProperties.Name="RenamePageType"/>
                <MenuItem Header="Delete Page Type" Command="{Binding Path=PageTypeDeletedCommand}" 
                          AutomationProperties.AutomationId="DeletePageTypeMenuItem"
                          AutomationProperties.Name="DeletePageType"/>
            </ContextMenu>
        </Controls:EditableTextControl.ContextMenu>
        <Controls:EditableTextControl.Content>
            <!--<Binding Path="CurrentPageTypeViewModel.Name" Mode="TwoWay"/>-->
            <Binding ElementName="PageTabControl" Path="CurrentPageTypeName" Mode ="TwoWay"/>
        </Controls:EditableTextControl.Content>
    </Controls:EditableTextControl>

In the Content section I am binding to a Dependency Prop called CurrentPageTypeName. This Depedency prop is part of this custom Tab Control.

public static DependencyProperty CurrentPageTypeNameProperty = DependencyProperty.Register("CurrentPageTypeName", typeof(object), typeof(TabControlView));
    public object CurrentPageTypeName
    {
        get { return GetValue(CurrentPageTypeNameProperty) as object; }
        set { SetValue(CurrentPageTypeNameProperty, value); }
    }

In another view, where I am using the custom TabControl I then bind my property, with the actual name value, to CurrentPageTypeName property as seen below:

 <Views:TabControlView Grid.Row="0" Name="RunPageTabControl" 
                          TabItemsSource="{Binding RunPageTypeViewModels}"                              
                          SelectedTab="{Binding Converter={StaticResource debugConverter}}" 
                          CurrentPageTypeName="{Binding Path=RunPageName, Mode=TwoWay}" 
                          TabContentTemplateSelector="{StaticResource tabItemTemplateSelector}"  
                          SelectedIndex="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.SelectedTabIndex}"
                          ShowPageType="Hidden" >           
        <!--<Views:TabControlView.TabContentTemplate>
            <DataTemplate DataType="{x:Type ViewModels:RunPageTypeViewModel}">
                <RunViews:RunPageTypeView/>
            </DataTemplate>
        </Views:TabControlView.TabContentTemplate>-->

    </Views:TabControlView>

My problem is that nothing seems to be happening. It is grabbing its Content from the Itemsource, and not from my chained Dependency props. Is what I am trying even possible? If so, what have I done wrong.

Thanks for looking.

© Stack Overflow or respective owner

Related posts about wpf

Related posts about xaml