vts123
vts123

Reputation: 1776

Listbox item style - how to show items in two rows..?

i have some listbox, which has this applied style:

        <Style x:Key="GroupListBoxItemStyle"
           TargetType="ListBoxItem">
        <Setter Property="OverridesDefaultStyle"
                Value="True" />
        <Setter Property="FocusVisualStyle"
                Value="{x:Null}" />
        <Setter Property="FontSize"
                Value="11" />
        <Setter Property="FontWeight"
                Value="Bold" />
        <Setter Property="Width"
                Value="95" />
        <Setter Property="HorizontalAlignment"
                Value="Center" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBoxItem">
                    <SlidingBar:SlidingBarRadioButton GroupName="PermissionsRadioButtonGroup"
                                                      IsChecked="{Binding Path=IsSelected,RelativeSource={RelativeSource TemplatedParent},BindsDirectlyToSource=True,Mode=TwoWay}"
                                                      Text="{Binding Converter={StaticResource resourceStringToResourceConverter}}"
                                                      ImageSource="{Binding Converter={StaticResource PermissionTypeToImageConverter}}" 
                                                      Margin="1"                                                          
                                                      />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Is there possible to show somehow these items in two rows?

Upvotes: 1

Views: 1657

Answers (1)

Martin Doms
Martin Doms

Reputation: 8748

You should do this in the ListBox ItemTemplate property. The XAML looks something like this:

    <ListBox Width="300" ItemsSource="{Binding}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding Line1}" />
                    <TextBlock Text="{Binding Line2}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

The resulting listbox should look like:

alt text

Of course you don't have to use a StackPanel, you can use whatever kind of layout you like in the data template. Be creative :)

Upvotes: 1

Related Questions