Текст заголовка расширителя отображается как System.Windows.FrameworkElementFactory в поле со списком

Я делаю следующее, чтобы добавить расширитель в свой список со списком:

           GroupStyle groupStyle = new GroupStyle();
           Style style = new Style(typeof(GroupItem));

           ControlTemplate controlTemplate = new ControlTemplate(typeof(GroupItem));

           FrameworkElementFactory expanderFactory = new FrameworkElementFactory(typeof(Expander));

           FrameworkElementFactory dockPanelFactory = new FrameworkElementFactory(typeof(DockPanel));

           FrameworkElementFactory textBlockNameFactory = new FrameworkElementFactory(typeof(TextBlock));
           textBlockNameFactory.SetBinding(TextBlock.TextProperty, new Binding("Name"));
           textBlockNameFactory.SetValue(TextBlock.FontWeightProperty, FontWeights.Bold);

           dockPanelFactory.AppendChild(textBlockNameFactory);

           expanderFactory.SetValue(Expander.HeaderProperty, dockPanelFactory);
           expanderFactory.SetValue(Expander.IsExpandedProperty, true);
           expanderFactory.AppendChild(new FrameworkElementFactory(typeof(ItemsPresenter)));

           controlTemplate.VisualTree = expanderFactory;
           style.Setters.Add(new Setter(GroupItem.MarginProperty, new Thickness(0, 0, 0, 5)));
           style.Setters.Add(new Setter(GroupItem.TemplateProperty, controlTemplate));

           groupStyle.ContainerStyle = style;

           this.comboBox.GroupStyle.Add(groupStyle);

Проблема: во время выполнения в поле со списком текст заголовка расширителя отображается как «System.Windows.FrameworkElementFactory» вместо значений.

Я нашел те же вопросы на многих сайтах, но нет ответа.

Любая помощь приветствуется. Спасибо.


person user1294794    schedule 28.03.2012    source источник
comment
Вы обязательно должны сделать это в XAML. См. раздел "Примечания" в FrameworkElementFactory.   -  person Clemens    schedule 28.03.2012
comment
См. также этот вопрос/ответ   -  person Clemens    schedule 28.03.2012