2010-06-02 2 views
1

다른 DataGrid의 RowDetailsTemplate 안에 "중첩 된"DataGrid가 있습니다. 내 마우스가 부모 DataGrid의 행의 주요 부분 위에있을 때 스크롤이 잘 작동하지만 마우스가 RowDetailsTemplate 안에 중첩 된 DataGrid 위에있을 때 스크롤이 중지됩니다. 여기 다른 DataGrid의 RowDetailsTemplate 안에 중첩 된 Datagrid가 마우스 휠 스크롤을 끊습니다.

는 데이터 그리드 설정입니다 :

<my:DataGrid Margin="-2,36,-2,1" 
         Background="White" 
         CanUserReorderColumns="True" 
         CanUserResizeRows="False" 
         ColumnHeaderHeight="35" 
         HorizontalGridLinesBrush="LightGray" 
         VerticalGridLinesBrush="White" 
         x:Name="testList" 
         VerticalScrollBarVisibility="Visible" 
         FlowDirection="LeftToRight" 
         AutoGenerateColumns="False" 
         IsReadOnly="True" 
         ScrollViewer.CanContentScroll="False" 
         SelectionMode="Single" 
         HeadersVisibility="Column" 
         GridLinesVisibility="None" 
         > 

       <my:DataGrid.Columns> 

        <my:DataGridTemplateColumn MinWidth="60" CanUserSort="True" SortMemberPath="ResultType"> 
         <my:DataGridTemplateColumn.Header> 
          <TextBlock FontSize="14" Text="Result"></TextBlock> 
         </my:DataGridTemplateColumn.Header> 
         <my:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Grid Margin="4" VerticalAlignment="Center" HorizontalAlignment="Center"> 
            <Image Height="35" Width="35" Source="{Binding TestResultImage}" ToolTip="{Binding ResultType}" /> 
           </Grid> 
          </DataTemplate> 
         </my:DataGridTemplateColumn.CellTemplate> 
        </my:DataGridTemplateColumn> 

        <my:DataGridTemplateColumn MinWidth="100" CanUserSort="True" SortMemberPath="TestName"> 
         <my:DataGridTemplateColumn.Header> 
          <TextBlock Margin="3" FontSize="14" Text="Dates"></TextBlock> 
         </my:DataGridTemplateColumn.Header> 
         <my:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Grid Margin="5" VerticalAlignment="Center" HorizontalAlignment="Center"> 
            <TextBlock FontSize="14" TextWrapping="Wrap" AllowDrop="True" Text="{Binding TestName}" ToolTip="This test analyzed data from this date" /> 
           </Grid> 
          </DataTemplate> 
         </my:DataGridTemplateColumn.CellTemplate> 
        </my:DataGridTemplateColumn> 

        <my:DataGridTemplateColumn MinWidth="150" Width="*" CanUserSort="True" x:Name="TestDetails" SortMemberPath="Result"> 
         <my:DataGridTemplateColumn.Header> 
          <TextBlock Margin="4" FontSize="14" Text="Details"></TextBlock> 
         </my:DataGridTemplateColumn.Header> 
         <my:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Grid Margin="5" VerticalAlignment="Center"> 
            <TextBlock TextWrapping="Wrap" FontSize="13" Text="{Binding Result}" ToolTip="Click for more details about this test" /> 
           </Grid> 
          </DataTemplate> 
         </my:DataGridTemplateColumn.CellTemplate> 
        </my:DataGridTemplateColumn> 

       </my:DataGrid.Columns> 

       <my:DataGrid.RowDetailsTemplate> 
        <DataTemplate> 
         <Grid> 
         <my:DataGrid Background="White" 
            BorderThickness="0" 
            CanUserReorderColumns="True" 
            HeadersVisibility="Column" 
            CanUserResizeRows="False" 
            ColumnHeaderHeight="25" 
            ItemsSource="{Binding GuiValidatorResults}" 
            HorizontalGridLinesBrush="LightGray" 
            x:Name="validatorList" 
            VerticalGridLinesBrush="White" 
            VerticalScrollBarVisibility="Auto" 
            HorizontalScrollBarVisibility="Auto" 
            FlowDirection="LeftToRight" 
            AutoGenerateColumns="False" 
            IsReadOnly="True" 
            ScrollViewer.CanContentScroll="False" 
            ScrollViewer.ScrollChanged="" 
            SelectionMode="Single" 
            MouseDoubleClick="HideAllValidatorDetails" 
            GridLinesVisibility="Horizontal"> 
          <my:DataGrid.Columns> 

           <my:DataGridTemplateColumn MinWidth="60" CanUserSort="True" SortMemberPath="ResultType"> 
            <my:DataGridTemplateColumn.Header> 
             <TextBlock Margin="0" Text="Result"></TextBlock> 
            </my:DataGridTemplateColumn.Header> 
            <my:DataGridTemplateColumn.CellTemplate> 
             <DataTemplate> 
              <Grid Margin="0"> 
               <Image Height="25" Width="25" Source="{Binding ValidatorResultImage}" ToolTip="{Binding ResultType}" /> 
              </Grid> 
             </DataTemplate> 
            </my:DataGridTemplateColumn.CellTemplate> 
           </my:DataGridTemplateColumn> 

           <my:DataGridTemplateColumn MinWidth="100" CanUserSort="True" SortMemberPath="DescriptiveTestLabel"> 
            <my:DataGridTemplateColumn.Header> 
             <TextBlock Margin="0" Text="Validator"></TextBlock> 
            </my:DataGridTemplateColumn.Header> 
            <my:DataGridTemplateColumn.CellTemplate> 
             <DataTemplate> 
              <Grid Margin="5"> 
               <TextBlock TextWrapping="Wrap" AllowDrop="True" Text="{Binding DescriptiveTestLabel}" /> 
              </Grid> 
             </DataTemplate> 
            </my:DataGridTemplateColumn.CellTemplate> 
           </my:DataGridTemplateColumn> 

           <my:DataGridTemplateColumn MinWidth="150" Width="*" CanUserSort="True" SortMemberPath="Text"> 
            <my:DataGridTemplateColumn.Header> 
             <TextBlock Margin="0" Text="Message"></TextBlock> 
            </my:DataGridTemplateColumn.Header> 
            <my:DataGridTemplateColumn.CellTemplate> 
             <DataTemplate> 
              <Grid Margin="5"> 
               <TextBlock TextWrapping="Wrap" AllowDrop="True" Text="{Binding Text}" /> 
              </Grid> 
             </DataTemplate> 
            </my:DataGridTemplateColumn.CellTemplate> 
           </my:DataGridTemplateColumn> 

          </my:DataGrid.Columns> 

          <my:DataGrid.RowDetailsTemplate> 
           <DataTemplate> 
              <GroupBox FontWeight="Bold" Margin="5" Header="Additional Details:"> 
             <Grid Margin="5" x:Name="WidthSetter"> 
              <Grid.RowDefinitions> 
               <RowDefinition /> 
               <RowDefinition /> 
              </Grid.RowDefinitions> 
              <Grid.Resources> 
               <DataTemplate x:Key="AdditionalDetailsTemplate"> 
                <Grid> 
                 <DockPanel> 
                  <TextBlock HorizontalAlignment="Left" Margin="0,0,0,10" Text="{Binding Path=.}" TextWrapping="Wrap" /> 
                 </DockPanel> 
                </Grid> 
               </DataTemplate> 
              </Grid.Resources> 
              <ListView FontWeight="Normal" 
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                 HorizontalContentAlignment="Stretch" 
                 BorderThickness="0" 
                 HorizontalAlignment="Left" 
                 Margin="0" 
                 Width="{Binding ActualWidth, ElementName=WidthSetter}" ItemTemplate="{StaticResource AdditionalDetailsTemplate}" ItemsSource="{Binding Path=AdditionalDetails}" /> 

              <Grid Grid.Row="1" Margin="3,5,5,5"> 

               <Grid.RowDefinitions> 
                <RowDefinition /> 
                <RowDefinition /> 
               </Grid.RowDefinitions> 
               <TextBlock FontWeight="Bold" Text="Records involved:" /> 
               <ListView BorderThickness="0" ItemsSource="{Binding InvolvedRecords}" ItemTemplate="{StaticResource ValidatorInvolvedRecordsTemplate}" Grid.Row="1" /> 
              </Grid> 
             </Grid> 
            </GroupBox> 
           </DataTemplate> 
          </my:DataGrid.RowDetailsTemplate> 
         </my:DataGrid> 
         </Grid> 
        </DataTemplate> 
       </my:DataGrid.RowDetailsTemplate> 

      </my:DataGrid> 

나는 "testList"데이터 그리드까지 스크롤 이벤트를 전달하는 자식 데이터 그리드를 알 수있는 방법이있을 것이라고 생각하지만, 내가되지 않았습니다 방법을 알아낼 수 있습니다.

감사합니다.

+0

나는 그것이 매우 오래된 것을 알고 있지만 이것을위한 해결책이 있는지 기억합니까? – Beetlejuice

답변

2

RowDetails에서 스크롤 자체를 처리하지 않는 한 주 DataGrid의 ScrollViewer.CanContentScroll 속성을 false로 설정해보십시오.

ScrollViewer.CanContentScroll="False" 
관련 문제