Click here to Skip to main content
15,905,414 members
Home / Discussions / WPF
   

WPF

 
AnswerRe: Help Silverlight Datagrid Pin
ankitjoshi246-Apr-11 4:18
ankitjoshi246-Apr-11 4:18 
AnswerRe: Help Silverlight Datagrid Pin
ninou21557-Apr-11 3:02
ninou21557-Apr-11 3:02 
Questionopensource Pin
arkiboys6-Apr-11 2:25
arkiboys6-Apr-11 2:25 
AnswerRe: opensource Pin
Pete O'Hanlon6-Apr-11 2:37
mvePete O'Hanlon6-Apr-11 2:37 
GeneralRe: opensource Pin
arkiboys6-Apr-11 3:23
arkiboys6-Apr-11 3:23 
GeneralRe: opensource Pin
Pete O'Hanlon6-Apr-11 3:44
mvePete O'Hanlon6-Apr-11 3:44 
GeneralRe: opensource Pin
arkiboys6-Apr-11 3:49
arkiboys6-Apr-11 3:49 
QuestionWPF DataGrid Virtualization Pin
arno_cp5-Apr-11 18:18
arno_cp5-Apr-11 18:18 
Hello!

I'm testing WPF Toolkit DataGrid to display 2000-5000 rows.
I try to apply my control template for WPF Toolkit DataGrid.
VirtualizingStackPanel.IsVirtualizing set in True.

<Style x:Key="{x:Type DataGrid}" TargetType="{x:Type DataGrid}">
            <Setter Property="MinRowHeight" Value="20"/>
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="SelectionUnit" Value="FullRow"/>
            <Setter Property="IsReadOnly" Value="False"/>
            <Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
            <Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="True"/>
            <Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/>
            <Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Recycling"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type DataGrid}">
                        <Border Background="{TemplateBinding Background}"
				BorderBrush="{TemplateBinding BorderBrush}"
				BorderThickness="{TemplateBinding BorderThickness}"
				SnapsToDevicePixels="True"
				Padding="{TemplateBinding Padding}">
                            <ScrollViewer Focusable="false" x:Name="DG_ScrollViewer">
                                <ScrollViewer.Template>
                                    <ControlTemplate TargetType="{x:Type ScrollViewer}">
                                        <Grid>
                                            <Grid.RowDefinitions>
                                                <RowDefinition Height="Auto"/>
                                                <RowDefinition Height="*"/>
                                                <RowDefinition Height="Auto"/>
                                            </Grid.RowDefinitions>

                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="Auto"/>
                                                <ColumnDefinition Width="*"/>
                                                <ColumnDefinition Width="Auto"/>
                                            </Grid.ColumnDefinitions>

                                            <Button Command="{x:Static DataGrid.SelectAllCommand}" Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=CellsPanelHorizontalOffset}" Focusable="false" Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=HeadersVisibility, Converter={x:Static DataGrid.HeadersVisibilityConverter}, ConverterParameter={x:Static DataGridHeadersVisibility.All}}" />
                                            
                                            <DataGridColumnHeadersPresenter Grid.Column="1" Name="PART_ColumnHeadersPresenter" Visibility="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=HeadersVisibility, Converter={x:Static DataGrid.HeadersVisibilityConverter}, ConverterParameter={x:Static DataGridHeadersVisibility.Column}}"/>

                                            
                                            <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Grid.Row="1" Grid.ColumnSpan="2" CanContentScroll="{TemplateBinding CanContentScroll}" />
                                            <ScrollBar Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" x:Name="PART_VerticalScrollBar"
						       Orientation="Vertical"
						       Maximum="{TemplateBinding ScrollableHeight}"
						       ViewportSize="{TemplateBinding ViewportHeight}"
						        Value="{Binding Path=VerticalOffset, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
            						Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}">
                                            </ScrollBar>
                                            <Grid Grid.Row="2" Grid.Column="1">
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=NonFrozenColumnsViewportHorizontalOffset}"/>
                                                    <ColumnDefinition Width="*"/>
                                                </Grid.ColumnDefinitions>
                                                <ScrollBar Grid.Column="1"
							   Name="PART_HorizontalScrollBar"
							   Orientation="Horizontal"
							   Maximum="{TemplateBinding ScrollableWidth}"
							   ViewportSize="{TemplateBinding ViewportWidth}"
							   Value="{Binding Path=HorizontalOffset, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
							   Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
                                            </Grid>
                                        </Grid>
                                    </ControlTemplate>
                                </ScrollViewer.Template>
                                   <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                            </ScrollViewer>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsGrouping" Value="True">
                    <Setter Property="ScrollViewer.CanContentScroll" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style> 


But I need to set ItemsPresenter into some control(Border , Grid or Decorator etc.):
...
                            </ControlTemplate>
                                </ScrollViewer.Template>
                                <Border>
                                    <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                                </Border>
                            </ScrollViewer>

...


In this case, virtualization doesn't work, in spite of "VirtualizingStackPanel.IsVirtualizing = True".

Do you know some way that solve this problem?
Thanks.
AnswerRe: WPF DataGrid Virtualization Pin
Tarun.K.S5-Apr-11 20:36
Tarun.K.S5-Apr-11 20:36 
GeneralRe: WPF DataGrid Virtualization Pin
Abhinav S5-Apr-11 20:59
Abhinav S5-Apr-11 20:59 
GeneralRe: WPF DataGrid Virtualization Pin
Tarun.K.S5-Apr-11 21:09
Tarun.K.S5-Apr-11 21:09 
AnswerRe: WPF DataGrid Virtualization Pin
arno_cp5-Apr-11 22:59
arno_cp5-Apr-11 22:59 
GeneralRe: WPF DataGrid Virtualization Pin
Tarun.K.S6-Apr-11 2:31
Tarun.K.S6-Apr-11 2:31 
QuestionRepresent a hierarchy in a TreeView from MSSQL database Pin
Jedimark5-Apr-11 6:22
Jedimark5-Apr-11 6:22 
AnswerRe: Represent a hierarchy in a TreeView from MSSQL database Pin
Pete O'Hanlon5-Apr-11 6:45
mvePete O'Hanlon5-Apr-11 6:45 
GeneralRe: Represent a hierarchy in a TreeView from MSSQL database Pin
Jedimark6-Apr-11 8:08
Jedimark6-Apr-11 8:08 
GeneralRe: Represent a hierarchy in a TreeView from MSSQL database Pin
Pete O'Hanlon6-Apr-11 8:40
mvePete O'Hanlon6-Apr-11 8:40 
GeneralRe: Represent a hierarchy in a TreeView from MSSQL database Pin
Pete O'Hanlon5-Apr-11 11:47
mvePete O'Hanlon5-Apr-11 11:47 
GeneralRe: Represent a hierarchy in a TreeView from MSSQL database Pin
SledgeHammer015-Apr-11 13:41
SledgeHammer015-Apr-11 13:41 
AnswerRe: Represent a hierarchy in a TreeView from MSSQL database Pin
Mycroft Holmes6-Apr-11 0:50
professionalMycroft Holmes6-Apr-11 0:50 
Questionupdate datagrid in silverlight 4 Pin
arkiboys5-Apr-11 2:13
arkiboys5-Apr-11 2:13 
AnswerRe: update datagrid in silverlight 4 Pin
Abhinav S5-Apr-11 2:20
Abhinav S5-Apr-11 2:20 
GeneralRe: update datagrid in silverlight 4 Pin
arkiboys5-Apr-11 2:23
arkiboys5-Apr-11 2:23 
AnswerRe: update datagrid in silverlight 4 Pin
Abhinav S5-Apr-11 2:53
Abhinav S5-Apr-11 2:53 
GeneralRe: update datagrid in silverlight 4 Pin
arkiboys5-Apr-11 2:55
arkiboys5-Apr-11 2:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.