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