WPF - Добавление динамических элементов управления в динамически добавляемый Tabitem? - PullRequest
8 голосов
/ 27 декабря 2010

Я динамически добавляю Tabitems в элемент управления Tab во время выполнения (в C #), и это работает нормально, но как я могу динамически добавлять элементы управления в новые Tabitems?Табитемы должны быть динамическими, потому что они зависят от того, сколько строк данных прочитано из базы данных.Расположение каждого Tabitem будет идентичным.Спасибо

Ответы [ 3 ]

11 голосов
/ 27 декабря 2010

Если у каждого 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
4 голосов
/ 27 декабря 2010

Используйте свойство Content нового TabItem, там вы можете установить что угодно, например, строки или другие элементы управления WPF:

private void AddChildControl(TabItem tabItem)
{
    StackPanel newChild = new StackPanel();
    tabItem.Content = newChild;
}
2 голосов
/ 27 декабря 2010

TabItem является элементом управления содержимым, поэтому просто установите его свойство Content для любого типа элемента, который вы хотите отобразить (например, Grid, содержащий другие элементы и т. Д.)

...