Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

datagrid scrolling problem

$
0
0

Hi All,

I have very strange problem in my Datagrid. I have used comboboxes and checkboxes to show their value in Datagrid.

When i scroll my datagrid vertically then values of combobox selected item is changed and checkboxes checked values is also changed. Temporarily  i have placed datagrid in scrollviewer and disabled the scrolling from datagrid. but this solution is not correct. bcoz after scrolling i can not see column headers. , i want concrete solution. below is my datagrid template

<Style TargetType="{x:Type DataGrid}"><Setter Property="HorizontalGridLinesBrush" Value="{DynamicResource  BorderBrush}"></Setter><Setter Property="VerticalGridLinesBrush" Value="{DynamicResource  BorderBrush}"></Setter><Setter Property="Foreground"
            Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" /><Setter Property="BorderBrush"><Setter.Value><SolidColorBrush Color="{DynamicResource  BorderColor}"></SolidColorBrush></Setter.Value></Setter><Setter Property="BorderThickness"
            Value="1" /><Setter Property="RowDetailsVisibilityMode"
            Value="Visible" /><Setter Property="ScrollViewer.CanContentScroll"
            Value="true" /><Setter Property="ScrollViewer.PanningMode"
            Value="Both" /><Setter Property="Stylus.IsFlicksEnabled"
            Value="False" /><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type DataGrid}"><Border x:Name="border"
                  SnapsToDevicePixels="True"
                  BorderBrush="{DynamicResource  BorderBrush}"
                  BorderThickness="{TemplateBinding BorderThickness}"
                  Padding="{TemplateBinding Padding}"><Border.Background><SolidColorBrush Color="White" /></Border.Background><ScrollViewer x:Name="DG_ScrollViewer"
                          Focusable="false"
                          Background="#FFF0EBE1" BorderBrush="#FFF0EBE1"><ScrollViewer.Template><ControlTemplate TargetType="{x:Type ScrollViewer}"><Grid ><Grid.ColumnDefinitions><ColumnDefinition Width="Auto" /><ColumnDefinition Width="*" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition Height="*" /><RowDefinition Height="Auto" /></Grid.RowDefinitions><Button Focusable="false"
                            Command="{x:Static DataGrid.SelectAllCommand}"
                            Style="{DynamicResource {ComponentResourceKey 
                        ResourceId=DataGridSelectAllButtonStyle, 
                        TypeInTargetAssembly={x:Type DataGrid}}}"
                            Visibility="{Binding HeadersVisibility, 
                        ConverterParameter={x:Static DataGridHeadersVisibility.All}, 
                        Converter={x:Static DataGrid.HeadersVisibilityConverter}, 
                        RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
                            Width="{Binding CellsPanelHorizontalOffset, 
                        RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /><DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter"
                                                    Grid.Column="1"
                                                    Visibility="{Binding HeadersVisibility, 
                        ConverterParameter={x:Static DataGridHeadersVisibility.Column}, 
                        Converter={x:Static DataGrid.HeadersVisibilityConverter}, 
                        RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /><ScrollContentPresenter x:Name="PART_ScrollContentPresenter"
                                            Grid.ColumnSpan="2"
                                            Grid.Row="1"
                                            CanContentScroll="{TemplateBinding CanContentScroll}" /><ScrollBar x:Name="PART_VerticalScrollBar"
                               Grid.Column="2"
                               Grid.Row="1"
                               Orientation="Vertical"
                               ViewportSize="{TemplateBinding ViewportHeight}"
                               Maximum="{TemplateBinding ScrollableHeight}"
                               Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
                               Value="{Binding VerticalOffset, Mode=OneWay, 
                        RelativeSource={RelativeSource TemplatedParent}}"/><Grid Grid.Column="1"
                          Grid.Row="2"><Grid.ColumnDefinitions><ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset, 
                            RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><ScrollBar x:Name="PART_HorizontalScrollBar"
                                 Grid.Column="1"
                                 Orientation="Horizontal"
                                 ViewportSize="{TemplateBinding ViewportWidth}"
                                 Maximum="{TemplateBinding ScrollableWidth}"
                                 Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
                                 Value="{Binding HorizontalOffset, Mode=OneWay, 
                          RelativeSource={RelativeSource TemplatedParent}}"/></Grid></Grid></ControlTemplate></ScrollViewer.Template><ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /></ScrollViewer></Border><ControlTemplate.Triggers><Trigger Property="IsEnabled" Value="False"><Setter TargetName="border" Property="Background" Value="{DynamicResource DisabledControlBackground}"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter><Setter Property="CanUserDeleteRows" Value="False"/><Style.Triggers><Trigger Property="IsGrouping"
               Value="true"><Setter Property="ScrollViewer.CanContentScroll"
                Value="false" /></Trigger></Style.Triggers></Style>


Sincerely, dhampall Please remember to mark the replies as answers if they help and unmark them if they provide no help.


Viewing all articles
Browse latest Browse all 18858

Trending Articles