2015-10-26 134 views
0

我試圖將選項卡添加到WPF中的選項卡控件,但在運行時控件上沒有顯示任何選項卡。我試着按照我所看到的例子。現在這是我有,但它不工作將選項卡添加到WPF C#中的現有選項卡控件#

_myConnection.Open(); 
SqlDataReader myReader = myCommand.ExecuteReader(); 
while (myReader.Read()) 
{ 
    MessageBox.Show(myReader["SectionName"].ToString()); 
    TabItem newTabItem = new TabItem 
    { 
     Header = myReader["SectionName"].ToString(), 
     Name = myReader["SectionID"].ToString() 
    }; 
    TabMain.Items.Add(newTabItem); 
} 
_myConnection.Close(); 
TabMain.SelectedIndex = 0; 

回答

2

您可以通過下面的代碼動態添加標籤。

添加以下代碼以全局聲明選項卡控件實例。

TabControl tbControl; 

現在,將下面的代碼添加到選項卡控件的加載事件中。

private void tbCtrl_Loaded(object sender, RoutedEventArgs e) 
     { 
      tbControl = (sender as TabControl); 
     } 

我已經使用了一個按鈕來爲現有的選項卡控件添加新的選項卡。

private void btnAdd_Click(object sender, RoutedEventArgs e) 
     { 
      TabItem newTabItem = new TabItem 
      { 
       Header = "Test", 
       Name = "Test" 
      }; 
      tbControl.Items.Add(newTabItem); 
     } 

以下是我的選項卡控件xaml視圖。

<TabControl x:Name="tbCtrl" HorizontalAlignment="Left" Height="270" Margin="54,36,0,0" VerticalAlignment="Top" Width="524" Loaded="tbCtrl_Loaded"> 
      <TabItem Header="Tab - 01"> 
       <Grid Background="#FFE5E5E5"> 
        <Button x:Name="btnAdd" Content="Add New Tab" HorizontalAlignment="Left" Margin="68,95,0,0" VerticalAlignment="Top" Width="109" Height="29" Click="btnAdd_Click"/> 
       </Grid> 
      </TabItem> 
     </TabControl> 

最後,使用此選項可以將任意數量的選項卡動態添加到現有選項卡控件。

希望這能滿足您的需求。

0

也許在你的DB值的東西?我只是寫最微不足道的for循環測試,並能正常工作(只使用一個TabControl和裝載的事件的XAML):

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     for (int i = 1; i <= 3; i++) 
     { 
      var item = new TabItem {Header = i.ToString(), Name = $"tab{i}"}; 
      TabMain.Items.Add(item); 
     } 
    } 
+0

我必須有更多的東西搞砸了,因爲這對我也不起作用。我是WPF的新手。我一直在使用WinForms。現在我只有一個tabcontrol的簡單標籤 Jeebwise

+0

如果您按原樣使用我的方法,請務必添加XAML中的這個事件處理程序定義:'>' –

相關問題