Какого типа элементы внутри ItemsControl? - PullRequest
0 голосов
/ 25 августа 2010

Когда я использую ListBox - элементы внутри имеют тип ListBoxItem, для ComboBox они являются ComboBoxItems. Какого типа они для ItemsControl? Я копался в шаблонах Blend безрезультатно.

Я хочу создать новый шаблон ControlTemplate для элементов внутри ItemsControl.

Для уточнения с кодом:

РЕДАКТИРОВАТЬ: выяснил тип, как показано ниже:

<UserControl.Resources>
    <Style x:Key="TemplateStyle" TargetType="{x:Type ContentControl}"> <!-- Here I need the correct Type in the TargetType-tag -->
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ContentControl}"> <!-- Again, I need the correct Type in a TargetType-tag -->
                    <DockPanel>
                        <TextBlock Text="Header" DockPanel.Dock="Top"/>
                        <ContentPresenter/>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</UserControl.Resources>
<ItemsControl ItemContainerStyle="{StaticResource TemplateStyle}"/>

Ответы [ 2 ]

1 голос
/ 25 августа 2010

Это просто ContentPresenter, что означает, что оно будет отображаться с тем, что DataTemplate связано с типом.

Если вы хотите получить явный контроль над тем, как элементы отображаются, вы можете просто использовать ItemTemplate:

<ItemsControl ItemsSource="{Binding Customers}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
0 голосов
/ 25 августа 2010

Я понял это методом проб и ошибок.Тип внутри ItemsControl - это некий ContentControl (вероятно, просто ContentControl).Я обновлю вопрос для других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...