2015-11-15 47 views
1

我正在尝试实现一个非常简单的事情。我创建了一个选项卡控件(绑定了ObservableCollection)和一个窗口上的按钮。当我点击一个按钮时,它会在此选项卡下创建一个带有一个小关闭按钮的新选项卡。当我按下这个关闭按钮时,按钮点击事件就会运行。如何在按钮上获取所选项目单击放置在WPF TabControl下

现在的问题是,当我按下一个关闭按钮,它不会给予点击/选定的项目,以便我可以从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

回答

0

我想这TabItems包含你的对象,而不是TabItem的人。所以mytabcontrol.SelectedItem将是你的对象类型,你不能将它们转换为TabItem。将它们转换为您的对象类型。

+0

谢谢,请分享任何示例代码? –

+0

很简单,将mytabcontrol.SelectedItem转换为YourObject;咱们试试吧。 – Giangregorio

+0

谢谢你的回复。但价值是无效的,所以我该如何施展它?如果您有任何示例代码,请分享 –

相关问题