Базовая привязка ComboBoxItem программно в C# WPFC#

Место общения программистов C#
Ответить
Anonymous
 Базовая привязка ComboBoxItem программно в C# WPF

Сообщение Anonymous »

Я пытаюсь изменить шаблон ComboBoxItem программно

Код: Выделить всё

//Main Style
Style style = new Style() { TargetType = typeof(ComboBoxItem) };
//Set Template
ControlTemplate temp = new ControlTemplate(typeof(ComboBoxItem));
style.Setters.Add(new Setter() { Property = Control.TemplateProperty, Value = temp });

//Item Border
FrameworkElementFactory itemB = new FrameworkElementFactory(typeof(Border));
itemB.SetValue(Border.BorderBrushProperty, Brushes.Red);
itemB.SetValue(Border.WidthProperty, (double)500);
itemB.SetValue(Border.HeightProperty, (double)30);
itemB.SetValue(Border.BorderThicknessProperty, new Thickness(2));
itemB.SetValue(Border.BackgroundProperty, Brushes.GreenYellow);
temp.VisualTree = itemB;

//Item Label
FrameworkElementFactory itemT = new FrameworkElementFactory(typeof(Label));
itemT.AppendChild(itemB);
itemT.SetValue(Label.ForegroundProperty, Brushes.Red);

/* This Part Is Not Working*/
itemT.SetBinding(Label.ContentProperty, new Binding { RelativeSource = RelativeSource.Self });

//Set Template
Application.Current.Resources[typeof(ComboBoxItem)] = style;
Я тоже это пробовал

Код: Выделить всё

itemT.SetBinding(Label.ContentProperty, new Binding { Source = ComboBoxItem.ContentProperty });
Проблема в том, что имена элементов не отображаются в раскрывающемся списке.
Вот как я добавляю поле со списком

Код: Выделить всё

//ComboBox
ComboBox combobox = new ComboBox() {Height = 30, Width = 500};
combobox.Items.Add("OK 1");
combobox.Items.Add("OK 2");
combobox.Items.Add("OK 3");
combobox.Items.Add("OK 4");
Вот как выглядит раскрывающееся меню
[img]https://i.sstatic.net /Tyk3THJj.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/786 ... -sharp-wpf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»