2009-03-10 3 views
62

WPF ListViewの各グリッド列の上部にあるヘッダーを非表示にしたいと考えています。リストビューWPFのヘッダーを隠すにはどうすればいいですか?

これは私のListViewのためのXAMLです:

<Window x:Class="ListViewTest.Test0.ListViewTest" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Empty ListView Grid" Height="216" Width="435" FlowDirection="LeftToRight" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.IsSharedSizeScope="False"> 
    <Window.Resources> 
     <XmlDataProvider x:Key="CustomersDS" Source="C:\data.xml"/> 
    </Window.Resources> 


    <ListView Margin="0,0,0,50" ItemTemplate="{DynamicResource CustomerTemplate}" ItemsSource="{Binding Source={StaticResource CustomersDS}, XPath=/Customers/Customer}"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding XPath=Code}"/> 
       <GridViewColumn DisplayMemberBinding="{Binding XPath=Name}"/> 
       <GridViewColumn DisplayMemberBinding="{Binding XPath=Country}"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 


</Window> 

私はこれを結合していたデータは以下のとおりです。

<Customers> 
    <Customer> 
<Code>1234</Code> 
<Name>EPI</Name> 
<Country>Sesame Street</Country> 
    </Customer> 
    <Customer> 
<Code>3234</Code> 
<Name>Paul</Name> 
<Country>United Kingdom</Country> 
    </Customer> 
<Customer> 
<Code>3344</Code> 
<Name>Juan</Name> 
<Country>Spain</Country> 
    </Customer> 
<Customer> 
<Code>4321</Code> 
<Name>Dodo</Name> 
<Country>Mars</Country> 
    </Customer> 
</Customers> 

答えて

113

はそう

<Window.Resources> 
    .... 
    <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}"> 
     <Setter Property="Visibility" Value="Collapsed" /> 
    </Style> 
</Window.Resources> 

のようにそれを適用するようにスタイルを定義します。 so

<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}"> 
    .... 
</GridView> 
+2

FrameworkElement.Visibility、少なくともWPF 3.5でなければならない? (私はこれが古い話題だと知っていますが、それはGoogleのトップにあるので、多くの人にとって便利です) –

+1

それは必須ではありません。ターゲットタイプを指定したので、プロパティの場所を指定する必要はありません。 – Ray

+0

優秀な投稿...時間のヒープを保存し、治療を受けました..ありがとう – Kev

39

このソリューションをお寄せいただきありがとうございます。また、そのようStyleインラインを置くことができます。

<ListView> 
    <ListView.Resources> 
     <Style TargetType="GridViewColumnHeader"> 
      <Setter Property="Visibility" Value="Collapsed" /> 
     </Style> 
    </ListView.Resources> 
    <ListView.View> 
     <GridView> 
      <!-- ... --> 
     </GridView> 
    </ListView.View> 
</ListView> 

(また、あなたが使用{x:Type}表記は必要とされていないようです)

+0

両方の答えは正しいが、これが最も好ましいです。ありがとうございました。 –

9

をあなたはレイのソリューションを適用することができます別の方法は、このようなものです:

<ListView> 
    <ListView.View> 
     <GridView> 
      <GridView.ColumnHeaderContainerStyle> 
       <Style TargetType="GridViewColumnHeader"> 
        <Setter Property="Visibility" Value="Collapsed" /> 
       </Style> 
      </GridView.ColumnHeaderContainerStyle> 
     </GridView> 
    </ListView.View> 
</ListView> 

解決策は、自動的に適用されるリソースを作成するのではなく、スタイルプロパティを直接設定します。それは良い、ちょうど別の方法だと言っている...

関連する問題