Procedure: De horizontale uitlijning van een kolom in een ListView wijzigen
Standaard wordt de inhoud van elke kolom in een ListViewItem links uitgelijnd. U kunt de uitlijning van elke kolom wijzigen door een DataTemplate op te geven en de eigenschap HorizontalAlignment op het element in de DataTemplatein te stellen. In dit onderwerp wordt beschreven hoe een ListView de inhoud ervan standaard uitlijnt en hoe u de uitlijning van één kolom in een ListViewkunt wijzigen.
Voorbeeld
In het volgende voorbeeld worden de gegevens in de Title
en ISBN
kolommen links uitgelijnd.
<!--XmlDataProvider is defined in a ResourceDictionary,
such as Window.Resources-->
<XmlDataProvider x:Key="InventoryData" XPath="Books">
<x:XData>
<Books xmlns="">
<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>
Als u de uitlijning van de kolom ISBN
wilt wijzigen, moet u opgeven dat de eigenschap HorizontalContentAlignment van elke ListViewItemStretchis, zodat de elementen in elke ListViewItem de gehele breedte van elke kolom kunnen omvatten of kunnen worden geplaatst. Omdat de ListView is gebonden aan een gegevensbron, moet u een stijl maken waarmee de HorizontalContentAlignmentwordt ingesteld. Vervolgens moet u een DataTemplate gebruiken om de inhoud weer te geven in plaats van de eigenschap DisplayMemberBinding te gebruiken. Als u de ISBN
van elke sjabloon wilt weergeven, kan de DataTemplate eenvoudig een TextBlock bevatten waarop de eigenschap HorizontalAlignment is ingesteld op Right.
In het volgende voorbeeld wordt de stijl en DataTemplate gedefinieerd die nodig zijn om de ISBN
kolom rechts uitgelijnd te maken en wordt de GridViewColumn gewijzigd om te verwijzen naar de DataTemplate.
<!--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>
Zie ook
- Overzicht van gegevensbindingen
- Overzicht van gegevenssjablonering
- Koppelen aan XML-gegevens met behulp van een XMLDataProvider en XPath-queries
- Overzicht
ListView
.NET Desktop feedback