2012-03-06 4 views
4

열 머리글을 클릭하여 GridView를 정렬합니다. 그러나 그리드 뷰에 더 많은 항목을 추가하고 스크롤 할 수있게되면 처음으로 열 머리글을 클릭해도 항목이 정렬되지 않습니다. 대신 gridview를 위쪽으로 이동하고 사용 가능한 공간의 모든 항목을 표시하려고합니다.gridview 열 머리글을 클릭하면 전체 gridview가 창을 덮으려고합니다

내가 이것을 막기 위해 설정해야하는 속성이 있습니까?

<Window x:Class="AutomatedExitStrategy.Presentation.View.AutomatedExitStrategyShell" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Automated Exit Strategy System" Height="480" 
    Width="2125"> 

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
    <Grid Opacity="1"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="0.20*"/> 
     <RowDefinition Height="0.80*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="1*"/> 
     </Grid.ColumnDefinitions> 
     <ListView 
      Grid.Row="1" 
      Margin="0,2,0,0" 
      IsSynchronizedWithCurrentItem="True" 
      ItemsSource="{Binding GlobalRowsCollection}" 
      AlternationCount="2"> 
      <ListView.View> 
       <GridView> 
        <GridViewColumn 
         Width="25"> 
         <GridViewColumnHeader Command="{Binding SortList}" CommandParameter="IsEnabled"></GridViewColumnHeader> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <CheckBox Margin="0" 
              VerticalAlignment="Center" 
              HorizontalAlignment="Left" 
              IsChecked="{Binding IsChecked}"/> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
        <GridViewColumn 
         Width="Auto"> 
         <GridViewColumnHeader Command="{Binding SortList}" CommandParameter="InputViewModel.Group">Grp</GridViewColumnHeader> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <Grid> 
            <TextBlock Text="{Binding InputViewModel.Group}" 
               Style="{StaticResource GridBlockStyle}" 
               HorizontalAlignment="Center"/> 
           </Grid> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
       </GridView> 
      </ListView.View> 
     </ListView> 

+0

당신이 모델 뷰 코드와 윈도우 코드를 제공하시기 바랍니다 수 (예 : 존재하는 경우) 그래서 문제가 테스트 할 수 있습니까? –

답변

0

리스트 뷰의 RequestBringIntoView 이벤트에 가입 취급로 표시한다 : 여기의 GridView에 대한 코드입니다.

클릭하면 전체 ListView를 표시하기 위해 ScrollViewer가 아래로 스크롤되지 않도록해야합니다. 따라서 결과적으로 MouseDown 이벤트가 계속 진행되고 정렬을 트리거 할 수 있어야합니다.

<ListView Grid.Row="1" 
      Margin="0,2,0,0" 
      IsSynchronizedWithCurrentItem="True" 
      ItemsSource="{Binding GlobalRowsCollection}" 
      AlternationCount="2" 
      RequestBringIntoView="ListView_RequestBringIntoView"> 
    ... 
</ListView> 

그리고 코드 숨김에

...

public void ListView_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e) 
{ 
    e.Handled = true; 
} 
관련 문제