ItemsPanelTemplate Selector в wpf?

Мне нужно установить свойство ItemsPanelTemplate списка, основываясь на свойстве зависимости элемента управления. Как мне использовать DataTemplateSelector для этого?

У меня есть что-то вроде:

<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <!-- Here I need to replace with either a StackPanel or a wrap panel-->
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>

Благодарност

Ответы на вопрос(2)

Решение Вопроса

ItemsPanelSelector (вероятно, потому что это неDataTemplate) но вы можете связать его или использоватьTrigger

Binding приме

<ListBox ItemsPanel="{Binding RelativeSource={RelativeSource Self},
                              Path=Background,
                              Converter={StaticResource MyItemsPanelConverter}}">

Trigger вStyle приме

<ListBox ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}">
    <ListBox.Style>
        <Style TargetType="ListBox">
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <StackPanel/>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <!-- Your Trigger.. -->
                <Trigger Property="Background" Value="Green">
                    <Setter Property="ItemsPanel">
                        <Setter.Value>
                            <ItemsPanelTemplate>
                                <WrapPanel/>
                            </ItemsPanelTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.Style>
</ListBox>
 user120243418 мая 2012 г., 16:18
Отлично. Спасибо за пример кода. Это мне очень помогло. Недурно, мой друг.

что лучший способ здесь - использовать стиль для вашего ListBox и установить триггеры, которые изменяют ItemsPanel на основе свойства DependencyProperty, на которое вы ссылаетесь.

Ваш ответ на вопрос