我有一个带有模板内容的 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}
我确定这样做一定很简单,但我似乎无法解决绑定语法