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.