Anvisningar: Ändra den vågräta justeringen av en kolumn i en ListView

Som standard är innehållet i varje kolumn i en ListViewItem vänsterjusterat. Du kan ändra justeringen för varje kolumn genom att ange en DataTemplate och ange egenskapen HorizontalAlignment för elementet i DataTemplate. Det här avsnittet visar hur en ListView justerar innehållet som standard och hur du ändrar justeringen för en kolumn i en ListView.

Exempel

I följande exempel är data i kolumnerna Title och ISBN vänsterjusterade.

<!--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>

Om du vill ändra justeringen för kolumnen ISBN måste du ange att egenskapen HorizontalContentAlignment för varje ListViewItem är Stretch, så att elementen i varje ListViewItem kan sträcka sig över eller placeras längs hela bredden på varje kolumn. Eftersom ListView är bunden till en datakälla måste du skapa ett format som anger HorizontalContentAlignment. Sedan måste du använda en DataTemplate för att visa innehållet i stället för att använda egenskapen DisplayMemberBinding. Om du vill visa ISBN för varje mall kan DataTemplate bara innehålla en TextBlock som har egenskapen HorizontalAlignment inställd på Right.

I följande exempel definieras formatmallen och DataTemplate som krävs för att göra kolumn ISBN högerjusterad, och ändra GridViewColumn så att det refererar till 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>

Se även