我正在尝试使用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数据居中?
提前致谢。
答案 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
,看看是否有帮助。