WPF - 添加动态控件以动态添加Tabitem?

时间:2010-12-26 23:35:04

标签: wpf-controls

我在运行时(在C#中)动态地将Tabitems添加到Tab控件中,并且工作正常,但是如何将控件动态添加到新的Tabitems? Tabitems需要是动态的,因为它们取决于从数据库中读取多少行数据。每个Tabitem的布局都是相同的。感谢

3 个答案:

答案 0 :(得分:11)

如果每个TabItem将具有相同的布局,我只需创建一个UserControl,其中包含您从布局和控制姿势中所需的内容,然后将其放在TabItem.Content属性中。

然后,您可以通过对象表示将数据传递给TabItem.DataContext属性,以启动和使用绑定。

TabItem item = new TabItem();
item.Content = new CustomUserControl();
item.DataContext = data; //where data is the data that 
                         //comes from the database 
                         //being represented in object form

答案 1 :(得分:4)

使用新TabItem的Content属性,您可以设置任何内容,如字符串或其他WPF控件:

private void AddChildControl(TabItem tabItem)
{
    StackPanel newChild = new StackPanel();
    tabItem.Content = newChild;
}

答案 2 :(得分:2)

TabItem是一个内容控件,所以只需将其Content属性设置为您希望显示的任何类型的元素(例如包含其他元素的Grid等)