Динамически добавлять вкладки в элемент управления вкладками - PullRequest
1 голос
/ 16 ноября 2010

Я пытаюсь динамически добавлять вкладки в элемент управления вкладками.У меня есть шаблон элемента управления в ресурсах:

<ControlTemplate x:Key="memoTab" TargetType="{x:Type TabItem}">  
    <TabItem Header="Memo">  
        <TextBox Name="memoText"
                 HorizontalAlignment="Stretch"
                 VerticalAlignment="Stretch"
                 AcceptsReturn="True"/>
    </TabItem>  
</ControlTemplate>

Я создаю вкладку в коде позади:

TabItem tab = new TabItem();  
tab.Template = (ControlTemplate) FindResource("memoTab");  
tab.ApplyTemplate();  
TextBox tb = (TextBox) tab.Template.FindName("memoText", tab);  
tb.DataContext = memo; //this is a string created by linq query  
tabControl.Items.Add(tab);

Я получаю вкладку, видимую в элементе управления вкладкой, но она не выбирается, и яничего не вижу в этом.

1 Ответ

1 голос
/ 17 ноября 2010

Я мог бы воспроизвести его, попробуйте вместо этого:

private void Button_Click(object sender, RoutedEventArgs e)
{
    var content = new TextBlock();
    content.Text = "Hello World! " + new Random().Next(1, 20).ToString();

    TabItem tab = new TabItem();
    tab.Header = "Hello world!";
    tab.Content = content;
    tabControl.Items.Add(tab);
}

UI

<Grid>
    <TabControl Name="tabControl">
        <TabItem Header="Existing tab 1" />
        <TabItem Header="Existing tab 2" />
    </TabControl>

    <Button HorizontalAlignment="Left" VerticalAlignment="Bottom" Content="Add Tab" Width="100" Height="30" Click="Button_Click" />
</Grid>

Надеюсь, это поможет!

...