2016-05-17 4 views
0

Ich habe Listbox, die die Liste des Textes und seinen Status zeigen wird. Wie soll ich den Text auf der linken Seite und Statuskontrolle auf der rechten Seite zeigen? So habe ich es versucht.List Box Artikel Vorlage Layout

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <DockPanel> 
      <TextBlock DockPanel.Dock="Left" Text="{Binding Path=Name}" Style="{StaticResource TextBlockTitle}"/> 
      <ContentControl DockPanel.Dock="Right" HorizontalAlignment="Right" Content="{Binding Status}" ContentTemplate="{StaticResource StatusTemplate}" />        
     </DockPanel>      
    </DataTemplate> 

Dieser Code die Statuskontrolle unmittelbar nach dem Text angezeigt wird.

Antwort

2

Würde verwenden eine Grid mit zwei Spalten:

  1. * Größe
  2. Auto Größe (oder einen Satz ein SharedSizeGroup wenn Sie die Synchronisierung zwischen den einzelnen Posten wollen)

Die erste Spalte wird alle oben Platz übrig. Für die Größenfreigabe müssen Sie auch Grid.IsSharedSizeScope auf z. das ListBox Element.

Die Artikel auch need to be stretched.

+0

Angewendet die Lösung, aber es ist immer noch das gleiche für die List-Box-Elemente. Gibt es einen Grund dafür, dass dies für die Elemente im Listenfeld passiert ?. weil ich sehen konnte, dass die Treeview-Elemente korrekt ausgerichtet sind – Peekay

+0

Richtig, setze 'HorizontalContentAlignment' auf' Stretch' auf der 'ListBox'. –

+0

Ehrfürchtig. hat perfekt funktioniert – Peekay