2010-11-22 4 views
1

Ich habe einige listbox, die diesen angelegten Stil hat:Listenfeld-Stil - wie Objekte in zwei Reihen angezeigt werden ..?

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

Gibt es irgendwie möglich diese Elemente in zwei Reihen zu zeigen?

Antwort

1

Sie sollten dies in der ListBox ItemTemplate-Eigenschaft tun. Die XAML sieht ungefähr so ​​aus:

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

Das resultierende listbox sollte wie folgt aussehen:

Sie alt text

Natürlich keine Stackpanel verwenden müssen, können Sie verwenden, was auch immer Art von Layout, das Sie wie in der Datenvorlage. Sei kreativ :)