2015-11-15 89 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

謝謝你的回覆。但價值是無效的,所以我該如何施展它?如果您有任何示例代碼,請分享 –

相關問題