绑定到TabControl的ContentTemplate内的元素。

问题描述 投票:0回答:2

我有一个带有ContentTemplate的TabControl,它定义了一个CheckBox。在TabControl之外,我想绑定到当前选定的TabItem中的CheckBox。我如何才能做到这一点?

在下面的代码中,CheckBox "Mirror "被绑定到同一级别的CheckBox上,这就可以了。如何让Mirror-CheckBox镜像tabCheckbox?

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <TabControl Grid.Row="0">
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <CheckBox
                        Name="tabCheckbox"
                        Content="Check me"
                        />
                </DataTemplate>
            </TabControl.ContentTemplate>

            <TabItem Header="Tab 1">
            </TabItem>
        </TabControl>

        <CheckBox
            x:Name="checkbox"
            Grid.Row="1"
            Content="Some CheckBox"
            />
        <CheckBox
            Grid.Row="2"
            Content="Mirror"
            IsChecked="{Binding ElementName=checkbox, Path=IsChecked}"
            />
    </Grid>
wpf
2个回答
0
投票

将两个CheckBox绑定到同一个ViewModel属性是有意义的。这样你就可以只将焦点标签页的内容绑定到独立CheckBox使用的目标视图模型上。


0
投票

据我所知,从DataTemplate外部绑定到DataTemplate内部的元素是不可能的。但是你可以从镜像复选框绑定到tabCheckbox。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <TabControl Grid.Row="0">
        <TabControl.ContentTemplate>
            <DataTemplate>
                <CheckBox
                    x:Name="tabCheckbox"
                    Content="Check me"
                    IsChecked="{Binding IsChecked, Source={x:Reference mirrorCheckBox}}" />
            </DataTemplate>
        </TabControl.ContentTemplate>

        <TabItem Header="Tab 1">
        </TabItem>
    </TabControl>

    <CheckBox
        x:Name="mirrorCheckBox"
        Grid.Row="2"
        Content="Mirror"
        />
</Grid>

x:引用 允许你在这种情况下直接用元素的名称来引用。

© www.soinside.com 2019 - 2024. All rights reserved.