WPF DataGrid не прокручивается при перетаскивании

У меня странная проблема с WPF DataGrid из WPF Toolkit. Полосы прокрутки отображаются правильно, когда количество строк увеличивается, и прокрутка работает, когда вы нажимаете стрелки вверх или вниз на полосе прокрутки.

Проблема возникает, когда я пытаюсь перетащить полосу прокрутки на сетку данных. На моей странице есть средство просмотра прокрутки. Когда я щелкаю и перетаскиваю полосу прокрутки на сетке, вместо нее прокручивается прокрутка страницы. Если полоса прокрутки не появляется на странице, сетка все равно не прокручивается. Есть ли обходной путь для этого ???

Был бы очень признателен за помощь в этом вопросе!

Например, в этом случае, если страница ‹280, она прокручивается при перетаскивании. Но прокрутка с перетаскиванием не работает с сеткой.

<ScrollViewer ScrollViewer.IsDeferredScrollingEnabled="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" >
                    <DockPanel>
                        <dg:DataGrid HorizontalScrollBarVisibility="Auto" SelectionMode="Single" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserSortColumns="False" AutoGenerateColumns="False" RowHeaderWidth="17" ItemsSource="{Binding Path=OrderSearchVm}" IsReadOnly="True" MaxHeight="280" DockPanel.Dock="Top">
                            <dg:DataGrid.Columns>                                   
                                <dg:DataGridTextColumn Width="75" Header="Date" Binding="{Binding Path=OrderDate}" >
                                    <dg:DataGridTextColumn.ElementStyle>
                                        <Style TargetType="{x:Type TextBlock}">
                                            <Setter Property="TextWrapping" Value="Wrap" />
                                        </Style>
                                    </dg:DataGridTextColumn.ElementStyle>
                                </dg:DataGridTextColumn>
                                <dg:DataGridTextColumn Header="Type" Binding="{Binding Path=OrderType}" Width="45"/>
                                <dg:DataGridTextColumn Header="Shipping Name" Binding="{Binding Path=ShipToName}" Width="115">
                                    <dg:DataGridTextColumn.ElementStyle>
                                        <Style TargetType="{x:Type TextBlock}">
                                            <Setter Property="TextWrapping" Value="Wrap" />
                                        </Style>
                                    </dg:DataGridTextColumn.ElementStyle>
                                </dg:DataGridTextColumn>
                                <dg:DataGridTextColumn Header="Shipping Address " Binding="{Binding Path=ShipToAddress}" Width="160">
                                    <dg:DataGridTextColumn.ElementStyle>
                                        <Style TargetType="{x:Type TextBlock}">
                                            <Setter Property="TextWrapping" Value="Wrap" />
                                        </Style>
                                    </dg:DataGridTextColumn.ElementStyle>
                                </dg:DataGridTextColumn>                                   
                                <dg:DataGridTextColumn Header="E-Mail" Binding="{Binding Path=Email}" Width="140">
                                    <dg:DataGridTextColumn.ElementStyle>
                                        <Style TargetType="{x:Type TextBlock}">
                                            <Setter Property="TextWrapping" Value="Wrap" />
                                        </Style>
                                    </dg:DataGridTextColumn.ElementStyle>
                                </dg:DataGridTextColumn>
                            </dg:DataGrid.Columns>
                        </dg:DataGrid>
                    </DockPanel>
    </ScrollViewer>

person Greg R    schedule 07.04.2010    source источник
comment
Можете ли вы опубликовать образец XAML?   -  person user7116    schedule 07.04.2010
comment
Конечно, отправил. Я не думаю, что перетаскивание когда-либо работает с сеткой данных.   -  person Greg R    schedule 08.04.2010


Ответы (2)


Глупая ошибка, ScrollViewer.IsDeferredScrollingEnabled = "True" - вот что вызывало мою проблему

person Greg R    schedule 08.04.2010

Реализуйте следующие два свойства для сетки данных:

  • ScrollViewer.IsDeferredScrollingEnabled="True"
  • ScrollMode="Deferred"

Вы сможете правильно прокручивать сетку данных

person Sachin Hayatnagarkar    schedule 13.07.2010