2012-04-06 5 views
3

GridView로 사용하고있는 WPF ListView가 있습니다. 거기에 수직 눈금 선을 얻을 수있는 방법이 있습니까?ListView의 세로 격자 선

ListView에는 MinHeight가 지정되어 있으므로 GridLine이 모눈 아래쪽으로 이동하여 빈 공간을 채 웁니다.

이것은 다소 까다로운 문제인 것처럼 보입니다. 해결할 수 있습니까?

+0

이 질문을 확인 했습니까? http://stackoverflow.com/questions/5645078/how-to-put-vertical-lines-for-listviewitem-in-wpf – Habib

+0

시작일뿐입니다. . 눈금 선이 머리글 아래에 정렬되어 있지 않으며 목록보기의 맨 아래까지 줄이 그어지지 않습니다. –

답변

1

이것은 내가하는 방법입니다.

 <ListView Grid.IsSharedSizeScope="True" 
       ItemsSource="{Binding Path=MyList,FallbackValue='12345'}" > 
     <ListView.ItemTemplate> 
      <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="3*" SharedSizeGroup="col0"/> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="1*" SharedSizeGroup="col2"/> 
       </Grid.ColumnDefinitions> 
       <TextBlock Grid.Column="0" Margin="10,0" 
         Text="{Binding Path=Name, FallbackValue='Name goes here'}"/> 
       <Border Grid.Column="1" Margin="0,-2" 
        BorderBrush="DarkGray" 
        BorderThickness="0,0,1,0" /> 
       <TextBlock Grid.Column="2" Margin="10,0" 
         Text="{Binding Path=DateModified, FallbackValue='Date goes here'}"/> 
      </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
     </ListView> 

SharedSizeGroupGrid.IsSharedSizeScope 속성은 그 일을이 방법의 핵심이다. BorderMargin="0,-2" 속성은 구분선이 연속적인 수직선처럼 보이게합니다. 두 텍스트 블록에 수직 여백을 추가하는 경우 경계의 음수 수직 여백을 늘려야합니다.

이렇게하면 두 개의 일정한 크기의 열과 세로줄이 겹치지 만 데이터가없는 영역으로는 확장되지 않습니다. 해당 기능을 원하면 ListView가 최상의 옵션이 아닐 수도 있습니다. 뷰 모델의 MyList 속성에 일부 데이터를 추가

결과로이 제공 : 물론 enter image description here

MyList 속성은 속성으로 NameDateModified가있는 클래스의 목록 또는 수집 할 필요가있다.

+1

이것은 작동하지 않습니다. –