コンボボックスにエキスパンダーを追加するために次のことを行っています-
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」として表示されます。
多くのサイトで同じ質問を見つけましたが、答えはありません。
どんな種類の助けも大歓迎です。ありがとう。