2009-03-10 4 views
62

WPF ListView의 각 눈금 열 위쪽에 머리글을 숨기고 싶습니다.어떻게 목록보기 WPF의 머리글을 숨길 수 있습니까?

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

이 같은 프로그램을 적용 같은 스타일을 정의

내 ListView에 대한 XAML입니다 so

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

최소한 WPF 3.5에서 FrameworkElement.Visibility가되어야하지 않습니까? (이 주제는 오래된 주제이지만 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> 

+0

두 답변이 모두 정확하지만 가장 선호합니다. 고맙습니다. –

9

당신은 레이의 솔루션을 적용 할 수있는 또 다른 방법은 (또한, 사용한 {x:Type} 표기가 필요하지 않는 것)이 같다 :

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

자동으로 적용되는 리소스를 만드는 대신 솔루션에서 스타일 속성을 직접 설정합니다. 더 좋은 방법이라고 말하면서는 안됩니다 ...

관련 문제