2010-05-23 38 views
2

我想中心對齊ListView/GridView中的數據,我使用DisplayMemberBinding。WPF ListView GridView DisplayMemberBinding中心alignin內容

這是(部分)我的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數據?

在此先感謝。

回答

5

我想出瞭如何做到這一點,但我不得不改變很多。
我跟着這個鏈接的信息:
How to autosize and right-align GridViewColumn data in WPF?

首先我不得不添加到我的資源文件,這一點:

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

,然後改變我的列表視圖所以它看起來是這樣的:

<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

+0

好吧,從技術上說,我不得不擺脫DisplayMemberBinding標籤:) – Bigginn 2010-05-23 22:06:21

+0

謝謝!是的,一旦我刪除了DisplayMemberBinding標籤,這種方法效果很好! – 2011-07-08 01:30:51

0

嘗試在GridViewColumnHeader上使用HorizontalContentAlignment="Center",看看是否有幫助。

+0

我只是去嘗試,但它並沒有出於某種原因。 – Bigginn 2010-05-23 21:27:18

4

這非常簡單,您仍然可以使用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> 
+0

令人驚訝的是,我不知道你爲什麼被拒絕投票。 – gbhall 2015-01-15 06:28:08

+1

@gbhall謝謝你:D – rwinzhang 2015-01-15 08:00:59