WPF DataGrid не прокручивается при перетаскивании - PullRequest
2 голосов
/ 07 апреля 2010

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

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

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

Например, в этом случае, если страница <280, она прокручивается при перетаскивании. Но перетаскивание не работает на сетке. </p>

<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>

Ответы [ 2 ]

2 голосов
/ 08 апреля 2010

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

1 голос
/ 13 июля 2010

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

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

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

...