在WPF C#中向现有选项卡控件添加选项卡

63lcw9qa  于 2023-03-04  发布在  C#
关注(0)|答案(2)|浏览(194)

我尝试在WPF中添加选项卡到选项卡控件,但是在运行时控件上什么也没有出现。我尝试按照我经常看到的例子操作。现在这就是我所拥有的,但是它不起作用

_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;
wn9m85ua

wn9m85ua1#

可以使用下面的代码动态添加选项卡。
添加以下代码以全局声明选项卡控件示例。

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>

最后,使用这个选项卡,您可以向现有的选项卡控件动态添加任意数量的选项卡。
希望这能满足你的需要。

yptwkmov

yptwkmov2#

也许是DB值中的一些东西?我只是编写了最琐碎的for循环来测试,这工作得很好(只使用XAML上的TabControl和OnLoaded事件):

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);
        }
    }

相关问题