Postupy: Změna vodorovného zarovnání sloupce v ListView
Ve výchozím nastavení je obsah každého sloupce v ListViewItem zarovnaný doleva. Zarovnání jednotlivých sloupců můžete změnit zadáním DataTemplate a nastavením vlastnosti HorizontalAlignment prvku v rámci DataTemplate. Toto téma ukazuje, jak je obsah u ListView zarovnán ve výchozím nastavení a jak můžete změnit zarovnání jednoho sloupce v ListView.
Příklad
V následujícím příkladu jsou data ve sloupcích Title
a ISBN
zarovnaná doleva.
<!--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>
Chcete-li změnit zarovnání sloupce ISBN
, je nutné určit, že vlastnost HorizontalContentAlignment každého ListViewItem je Stretch, aby prvky v každém ListViewItem mohly být uspořádány nebo umístěny po celé šířce každého sloupce. Vzhledem k tomu, že ListView je vázán na zdroj dat, musíte vytvořit styl, který nastaví HorizontalContentAlignment. Dále musíte použít DataTemplate k zobrazení obsahu místo použití vlastnosti DisplayMemberBinding. Pokud chcete zobrazit ISBN
každé šablony, může DataTemplate obsahovat jenom TextBlock, která má vlastnost HorizontalAlignment nastavenou na Right.
Následující příklad definuje styl a DataTemplate, které jsou nezbytné k tomu, aby byl sloupec ISBN
zarovnán doprava, a změní GridViewColumn tak, aby odkazoval na 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>
Viz také
- Přehled datových vazeb
- Přehled data templatingu
- Propojení s daty XML pomocí XMLDataProvideru a dotazů XPath
- Přehled ListView
.NET Desktop feedback