如何获取按钮上的选定项目单击放置在WPF TabControl下

时间:2015-11-15 13:36:39

标签: wpf xaml

我正在努力实现一件非常简单的事情。我创建了一个选项卡控件(与ObservableCollection绑定)和一个窗口上的按钮。当我单击一个按钮时,它会在此选项卡下创建一个带有一个小关闭按钮的新选项卡。当我按下此关闭按钮时,按钮单击事件将运行。

现在问题是,当我按下关闭按钮时,它不会给出单击/选中的项目,以便我可以从ObservableCollection中删除已关闭的选项卡。

以下是我的Xaml和按钮代码。

的Xaml:

<TabControl x:Name="mytabcontrol" ItemsSource="{Binding TabItems}" Margin="10,66,36,10"> <!--SelectedItem="{Binding SelectedDetail, Mode=TwoWay}"-->
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <!-- Tab item header: -->
                    <StackPanel Orientation="Horizontal">
                        <TextBlock x:Name="tabarea" Text="{Binding Content}" />
                        <Button Content="X" Click="Button_Click" />

                    </StackPanel>
                </DataTemplate>
            </TabControl.ItemTemplate>
            <TabControl.ContentTemplate>
                <DataTemplate>
                    <!-- Tab item content goes here. -->
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>
        <Button Content="Click here" HorizontalAlignment="Left" Margin="10,27,0,0" VerticalAlignment="Top" Width="81" Click="Button_Click_1"/>

代码按钮。

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            //Here i need the clicked or selected item when prssing close button
            TabItem ti = mytabcontrol.SelectedItem as TabItem; //Here i want to get the selected item when click on close button from tabcontrol, but it gives null.
            MessageBox.Show(ti.Header.ToString());//Iam getting null here
        }

按下标签下的关闭按钮,请任何人帮助获取所选项目。在我附加的项目中,只需单击选项卡下的关闭按钮,然后查看单击的按钮行为,谢谢

Download Project

1 个答案:

答案 0 :(得分:0)

我认为TabItems包含您的Object而不包含TabItem。因此mytabcontrol.SelectedItem将是您的对象类型,您无法将它们转换为TabItem。将它们转换为您的对象类型。