1

タブ コントロールにタブを動的に追加しようとしています。リソースにコントロール テンプレートがあります。

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

タブコントロールにタブが表示されますが、選択できず、何も表示されません。

4

1 に答える 1

1

私はそれを再現することができました、代わりにこの方法を試してください:

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>

お役に立てれば!

于 2010-11-17T02:02:03.903 に答える