共用方式為


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 資料行的對齊方式,您需要指定每個 ListViewItemHorizontalContentAlignment 屬性為 Stretch,讓每個 ListViewItem 中的項目可以擴展或沿著每個資料行的整個寬度放置。 由於 ListView 繫結至資料來源,您必須建立設定 HorizontalContentAlignment 的樣式。 接著,您需要使用 DataTemplate 來顯示內容,而不是使用 DisplayMemberBinding 屬性。 若要顯示每個範本的 ISBN,DataTemplate 只要包含將 HorizontalAlignment 屬性設定為 RightTextBlock 即可。

下列範例定義將 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 資料

概念

資料繫結概觀

資料範本化概觀

ListView 概觀