获取TabControl的选定控件,而不是内容

时间:2014-08-04 20:15:19

标签: c# wpf

我正在构建一个简单的应用程序,主要由TabControl和带有Slider的StatusBar组成。每个标签都包含一个可以放大的自定义控件。出。状态栏中的滑块应该为用户提供放大和放大的能力。 out当前所选标签的内容。我的问题是我无法将滑块值分配给当前选定的自定义控件。

这是我的TabControl的xaml:

    <TabControl x:Name="MyTabControl" ItemsSource="{Binding MyItems}">
        <TabControl.ContentTemplate>
            <DataTemplate>
                <controls:MyControl x:Name="foo" DataContext="{Binding}">
                 </controls:MyControl>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>

对于滑块,我想要这样的东西,但它应该绑定到&#34; foo.bar&#34;当前所选标签的属性:

     <Slider
         Value="{Binding ElementName=foo, Path=bar}">
     </Slider>

这是可能的,还是有更好的方法来使用Slider来调整和显示当前所选自定义控件的属性?

1 个答案:

答案 0 :(得分:0)

您可以尝试将Value属性添加到为每个DataContext设置为TabItem的类(或类)中。然后,您可以使用Slider.Value属性将Value属性绑定到选定TabItem的数据项中的TabControl.SelectedItem属性。试试这个:

<Slider Value="{Binding Path=SelectedItem.Value, ElementName=MyTabControl}" />