我正在努力实现一件非常简单的事情。我创建了一个选项卡控件(与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
}
按下标签下的关闭按钮,请任何人帮助获取所选项目。在我附加的项目中,只需单击选项卡下的关闭按钮,然后查看单击的按钮行为,谢谢
答案 0 :(得分:0)
我认为TabItems
包含您的Object而不包含TabItem。因此mytabcontrol.SelectedItem
将是您的对象类型,您无法将它们转换为TabItem。将它们转换为您的对象类型。