0

我有一个带有模板内容的 TabControl,如下所示:

<TabControl x:Name="Items" SelectedItem="{Binding ActiveItem}" TabStripPlacement="Left" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1">
    <TabControl.ItemContainerStyle>
        <!--Some style stuff-->
    </TabControl.ItemContainerStyle>
    <TabControl.Template>
        <ControlTemplate TargetType="{x:Type TabControl}">
             <!--Some structure stuff including a tabpanel and contentPresenter-->
        </ControlTemplate>
     </TabControl.Template>
     <TabControl.ContentTemplate>
         <DataTemplate>
              <Button x:Name="MyButton" Visibility="{Binding x}" />
         </DataTemplate>
     </TabControl.ContentTemplate>
</TabControl>

包含此 TabControl 的视图使用类似于以下的 ViewModel:

public class MyPageViewModel : ScreenConductorViewModelBase<IMyTab>
{
    public Visibility x = Visibility.Hidden;
}

我希望模板内按钮的可见性从我的父(?)ViewModel中提取,但是它试图从项目viewModel中检索x。

这对我来说很有意义,但我不确定如何指定该字段应该来自父级。

我已经尝试了一些东西,但它们似乎都不起作用:

   {Binding x}
   {Binding DataContext.x}
   {Binding RelativeSource={RelativeSource TemplatedParent}, Path=x}

我确定这样做一定很简单,但我似乎无法解决绑定语法

4

1 回答 1

3

尝试

<Button x:Name="MyButton"
        Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabControl}},
                             Path=DataContext.x}" /> 
于 2012-06-19T20:53:08.267 回答