Procedura: modificare l'allineamento orizzontale di una colonna in ListView
Per impostazione predefinita, il contenuto di ogni colonna in ListViewItem è allineato a sinistra. È possibile modificare l'allineamento di ciascuna colonna fornendo un oggetto DataTemplate e impostando la proprietà HorizontalAlignment sull'elemento all'interno di DataTemplate. In questo argomento viene descritto l'allineamento predefinito del contenuto in ListView e come modificare l'allineamento di una colonna in ListView.
Esempio
Nell'esempio riportato di seguito, i dati nelle colonne Title e ISBN sono allineati a sinistra.
<!--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>
Per modificare l'allineamento della colonna ISBN, specificare che la proprietà HorizontalContentAlignment di ogni ListViewItem è Stretch, in modo che gli elementi all'interno di ogni ListViewItem possano essere estesi o posizionati sull'intera larghezza di ciascuna colonna. Poiché l'oggetto ListView è associato a un'origine dati, sarà necessario creare uno stile che imposta HorizontalContentAlignment. Per la visualizzazione del contenuto, utilizzare quindi DataTemplate anziché la proprietà DisplayMemberBinding. Per visualizzare l'ISBN di ciascun modello, DataTemplate può contenere un solo oggetto TextBlock con la proprietà HorizontalAlignment impostata su Right.
Nell'esempio riportato di seguito vengono definiti stile e DataTemplate necessari per allineare a destra la colonna ISBN e viene modificato l'oggetto GridViewColumn in modo che faccia riferimento a 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>
Vedere anche
Attività
Procedura: eseguire l'associazione a dati XML tramite un oggetto XMLDataProvider e query XPath
Concetti
Cenni preliminari sull'associazione dati