2010-11-22 40 views
1

i ont une zone de liste, qui a ce style appliqué:Style d'élément de liste - comment afficher les éléments dans deux rangées ..?

 <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> 

Est-il possible de montrer en quelque sorte ces éléments en deux rangées?

Répondre

1

Vous devez le faire dans la propriété ListBox ItemTemplate. Le XAML ressemble à ceci:

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

Le listbox résultant devrait ressembler à:

alt text

Bien sûr, vous ne devez pas utiliser un StackPanel, vous pouvez utiliser tout type de mise en page comme dans le modèle de données. Soyez créatif :)