HOW TO:變更 ListView 中資料行的水平對齊
根據預設,ListViewItem 中每個資料行的內容都是靠左對齊。 您可以藉由提供 DataTemplate 並在 DataTemplate 內的項目上設定 HorizontalAlignment 屬性,以變更每個資料行的對齊方式。 本主題示範 ListView 如何依預設對齊內容,以及如何變更 ListView 其中一個資料行的對齊方式。
範例
在下列範例中,Title 和 ISBN 資料行中的資料是靠左對齊。
<!--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>
若要變更 ISBN 資料行的對齊方式,您需要指定每個 ListViewItem 的 HorizontalContentAlignment 屬性為 Stretch,讓每個 ListViewItem 中的項目可以擴展或沿著每個資料行的整個寬度放置。 由於 ListView 繫結至資料來源,您必須建立設定 HorizontalContentAlignment 的樣式。 接著,您需要使用 DataTemplate 來顯示內容,而不是使用 DisplayMemberBinding 屬性。 若要顯示每個範本的 ISBN,DataTemplate 只要包含將 HorizontalAlignment 屬性設定為 Right 的 TextBlock 即可。
下列範例定義將 ISBN 設為靠右對齊所需的樣式和 DataTemplate,並變更 GridViewColumn 來參考 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>
請參閱
工作
HOW TO:使用 XMLDataProvider 和 XPath 查詢繫結至 XML 資料