Gewusst wie: Ändern der horizontalen Ausrichtung einer Spalte in einem ListView-Element
Aktualisiert: November 2007
Standardmäßig ist der Inhalt jeder Spalte in einem ListViewItem linksbündig ausgerichtet. Sie können die Ausrichtungen der einzelnen Spalten ändern, indem Sie eine DataTemplate bereitstellen und die HorizontalAlignment-Eigenschaft des Elements in der DataTemplate festlegen. In diesem Thema wird beschrieben, wie ein ListView-Element seinen Inhalt standardmäßig ausrichtet und wie Sie die Ausrichtung einer Spalte in einem ListView-Element ändern.
Beispiel
Im folgenden Beispiel sind die Daten in den Spalten Title und ISBN linksbündig ausgerichtet.
<!--XmlDataProvider is defined in a ResourceDictionary,
such as Window.Resources-->
<XmlDataProvider x:Key="InventoryData" XPath="Books">
<x:XData>
<Books >
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
</x:XData>
</XmlDataProvider>
...
<ListView ItemsSource="{Binding Source={StaticResource InventoryData}, XPath=Book}">
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Title"
DisplayMemberBinding="{Binding XPath=Title}"/>
<GridViewColumn Width="150" Header="ISBN"
DisplayMemberBinding="{Binding XPath=@ISBN}"/>
</GridView>
</ListView.View>
</ListView>
Um die Ausrichtung der Spalte ISBN zu ändern, müssen Sie angeben, dass die HorizontalContentAlignment-Eigenschaft der einzelnen ListViewItem-Elemente auf Stretch festgelegt ist, so dass die Einträge in den einzelnen ListViewItem-Elementen jeweils die gesamte Breite der Spalte einnehmen können. Da das ListView-Element an eine Datenquelle gebunden ist, müssen Sie einen Stil erstellen, der HorizontalContentAlignment festlegt. Danach müssen Sie eine DataTemplate verwenden, um den Inhalt anzuzeigen, anstatt die DisplayMemberBinding-Eigenschaft zu verwenden. Um den ISBN-Wert für die einzelnen Vorlagen anzuzeigen, kann die DataTemplate einfach einen TextBlock enthalten, dessen HorizontalAlignment-Eigenschaft auf Right gesetzt ist.
Das folgende Beispiel definiert den Stil und die DataTemplate, die zum rechtsbündigen Ausrichten der Spalte ISBN erforderlich sind, und ändert die GridViewColumn, damit sie auf die DataTemplate verweist.
<!--The Style and DataTemplate are defined in a ResourceDictionary,
such as Window.Resources-->
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
<DataTemplate x:Key="ISBNTemplate">
<TextBlock HorizontalAlignment="Right"
Text="{Binding XPath=@ISBN}"/>
</DataTemplate>
...
<ListView ItemsSource="{Binding Source={StaticResource InventoryData}, XPath=Book}">
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Title"
DisplayMemberBinding="{Binding XPath=Title}"/>
<GridViewColumn Width="150" Header="ISBN"
CellTemplate="{StaticResource ISBNTemplate}"/>
</GridView>
</ListView.View>
</ListView>
Siehe auch
Aufgaben
Gewusst wie: Binden an XML-Daten mithilfe von XMLDataProvider und XPath-Abfragen