1
我有一个DataGrid嵌套在另一个DataGrid的RowDetailsTemplate中。只要我的鼠标在父DataGrid的行的主要部分上滚动,滚动就可以正常工作,但当鼠标悬停在嵌套在RowDetailsTemplate中的DataGrid上时,它将停止滚动。嵌套在另一个DataGrid的RowDetailsTemplate中的Datagrid中断鼠标滚轮滚动
这里是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>
我认为会有一些方法来告诉子DataGrid通过滚动事件上升到“testList”的DataGrid,但我一直没能够弄清楚如何。
谢谢!
我知道那已经很旧了,但是你还记得如果你有这个解决方案吗? – Beetlejuice 2017-06-30 11:07:46