WPF ListView GridView DisplayMemberBinding中心对齐内容

时间:2010-05-23 15:17:02

标签: wpf gridview listview

我正在尝试使用DisplayMemberBinding在ListView / Gridview中对齐数据。

这是(部分)我的gridview的样子:

<ListView>
    <ListView.View>
        <GridView>
            <GridView.Columns>
               <GridViewColumn DisplayMemberBinding="{Binding Path=Timi}" Width="Auto">
                   <GridViewColumnHeader Content="Tími" Click="GridViewColumnHeader_Click" ></GridViewColumnHeader>
                </GridViewColumn>
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>

我尝试使用CellTemplate,如本页所述 http://msdn.microsoft.com/en-us/library/system.windows.controls.gridviewcolumn.celltemplate.aspx 但是它没有用,后来我读到了一个人永远不应该一起使用cellTemplate和DisplayMemberBinding。

所以问题是:当我使用DisplayMemberBinding将数据绑定到gridview时,如何将gridview数据居中?

提前致谢。

3 个答案:

答案 0 :(得分:5)

我想出了如何做到这一点,但我不得不改变很多 我按照这个链接的信息:
How to autosize and right-align GridViewColumn data in WPF?

首先我必须将它添加到我的资源文件中:

<Style TargetType="ListViewItem">
    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>

然后更改我的listview,看起来像这样:

<ListView >
    <ListView.View>
        <GridView>
            <GridView.Columns>
                <GridViewColumn>
                     <GridViewColumnHeader Content="ColName" Click="GridViewColumnHeader_Click" ></GridViewColumnHeader>
                     <GridViewColumn.CellTemplate>
                         <DataTemplate>
                             <TextBlock Text="{Binding Path=col1, StringFormat='0.00'}" TextAlignment="Center" />
                         </DataTemplate>
                         </GridViewColumn.CellTemplate>
                     </GridViewColumn>
                 <GridView.Columns>
            <GridView>
    <ListView.View>
<ListView >

感谢您的帮助 Bigginn

答案 1 :(得分:5)

这样更简单,您仍然可以使用DisplayMemberBinding代码。

<ListView ItemsSource="{Binding Song}" TextBlock.FontSize="32">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Title" DisplayMemberBinding="{Binding Title}"/>
            <GridViewColumn Header="Artist" DisplayMemberBinding="{Binding Artist}"/>
        </GridView>
    </ListView.View>
</ListView>

答案 2 :(得分:0)

尝试在HorizontalContentAlignment="Center"上使用GridViewColumnHeader,看看是否有帮助。