Добавление StackPanel в ComboBoxItem программным способом

1

У меня есть программа Windows, построенная на WPF. Я делаю его более настраиваемым для конечного пользователя, используя INI файл. В настоящее время у меня есть ComboBox с несколькими элементами, а StackPanel между разделами ComboBox:

Изображение 174551

Вот XAML:

<ComboBox Grid.ColumnSpan="2" Grid.Column="0" HorizontalAlignment="Stretch" Margin="75,0,5,5" Grid.Row="1" VerticalAlignment="Top">
    <ComboBoxItem IsEnabled="False">
        <StackPanel>
            <TextBlock Text="50% Margin" />
            <Rectangle />
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem Content="Windows" Uid="0" />
    <ComboBoxItem Content="Gutters" Uid="0" />
    <ComboBoxItem Content="Insulation" Uid="0" />
    <ComboBoxItem Content="Doors" Uid="0" />
    <ComboBoxItem IsEnabled="False">
        <StackPanel>
            <TextBlock Text="50% Margin, No Overage" />
            <Rectangle />
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem Content="Kitchens" Uid="1" />
    <ComboBoxItem Content="Bathrooms" Uid="1" />
    <ComboBoxItem Content="Additions" Uid="1" />
    <ComboBoxItem Content="Basements" Uid="1" />
    <ComboBoxItem IsEnabled="False">
        <StackPanel>
            <TextBlock Text="35% Margin" />
            <Rectangle />
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem Content="Siding" Uid="2" />
    <ComboBoxItem Content="Roofing" Uid="2" />
</ComboBox>

Как добавить StackPanel внутри элемента ComboBox программно? К сожалению, для меня ComboBoxItem не имеет дочернего свойства, которое сделало бы это очень легким.

  • 1
    ComboBoxItem имеет свойство Content которое должно делать то, что вы хотите.
  • 0
    Ах, у меня сложилось впечатление, что Content ограничен текстом. Я приведу это в движение и доложу.
Показать ещё 1 комментарий
Теги:
wpf
combobox
wpf-controls

1 ответ

1
Лучший ответ

ComboBoxItem имеет свойство Content которое должно делать то, что вы хотите.

В общем случае, если вы хотите узнать, к какому свойству принадлежит XAML-контент элемента, перейдите в иерархию наследования и найдите атрибут [ContentPropertyAttribute].

ComboBoxItem наследует от ListBoxItem который сам наследует ContentControl который "помечен" с помощью [ContentPropertyAttribute("Content")]. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню