Telerik Forums
UI for WPF Forum
10 answers
442 views
Hi,
I currently use the TelerikGridView control in a WPF desktop project and I have some problems with low grid performance, both with loading data, with displaying and with using it.

There are approximatively between 500 and 2.000 records to manage (sometimes up to 10.000 records in one case), and it takes more than 5 minutes to display them.

The grid is contained in an user-control which is itself contained in a scrollviewer (needed).

Here is the code of the grid's user-control:

<telerikGrid:RadGridView x:Class="Ere.Desktop.Modules.Onshore.UserControls.Etape2AGridView"
    xmlns:telerikGrid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
    x:Name="radGridView" AutoGenerateColumns="False" ShowGroupPanel="False">
    <telerikGrid:RadGridView.Columns>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique1.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSSS1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique1.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSSSSPEAM1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique1.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSSSSPEAV1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique2.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSSS2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique2.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSSSSPEAM2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique2.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSSSSPEAV2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique3.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSSS3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique3.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSSSSPEAM3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertSurSiteSpecifique3.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSSSSPEAV3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique1.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSHS1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique1.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSHSSPEAM1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique1.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSHSSPEAV1}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique2.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSHS2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique2.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSHSSPEAM2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique2.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSHSSPEAV2}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique3.CleLibelleType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDTRANSHS3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique3.LibelleTransfertAmont}" Header="{Localize ONSGRIDTRANSHSSPEAM3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding TransfertHorsSiteSpecifique3.LibelleTransfertAval}" Header="{Localize ONSGRIDTRANSHSSPEAV3}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding MilieuCibleSpecifique.IdType, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDMILCIBTYP}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding MilieuCibleSpecifique.LibelleSpecifique}" Header="{Localize ONSGRIDMILCBLSPE}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding CleLibelleModePollution, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDKEYLIBMOD}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDataColumn DataMemberBinding="{Binding CleModule, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDKEYMODULE}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True"/>
        <telerikGrid:GridViewDynamicHyperlinkColumn DataMemberBinding="{Binding IdBase, Converter={StaticResource MyLocalizeConverter}}" Header="{Localize ONSGRIDSCEBAS}" IsReadOnly="True" IsReorderable="False" IsResizable="False" IsSortable="False" IsGroupable="False" IsFilterable="True" NavigateUrlMemberPaths="FichierAide" NavigateUrlFormatString="{} {0}" />
    </telerikGrid:RadGridView.Columns>
</telerikGrid:RadGridView>

and here is the container code of the grid's user-control:

<Grid>
   <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
   </Grid.ColumnDefinitions>
   <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
   </Grid.RowDefinitions>
   <ctrl:Etape2AGridView Grid.Column="0" Grid.Row="0" x:Name="GridView" ItemsSource="{Binding ScenariosSpecifiques}" DataContext="{Binding CurrentEtape}">
         <i:Interaction.Behaviors>
               <bhv:FilterBehavior Items="{Binding Items}" />
         </i:Interaction.Behaviors>
    </ctrl:Etape2AGridView>
</Grid>


I can't identify the cause of this (very) low performance.

 

Thanks!

Robert
Top achievements
Rank 1
 answered on 02 Jun 2011
2 answers
175 views
Hello Telerik team,

I am using a WPF rad grid {EnableRowVirtualization is set to"True"}.

I have used the GridViewToggleRowDetailsColumn column to toggle the visibility of the row details section of each row. 
I have some editable fields in the row details section like checkbox, dropdown.

On click of the expand button(+), I am populating these fields with some default values in  radGrid_LoadingRowDetails event.

I change the values in the fields and the leave the details section expanded. Then scroll down the grid so that the row move out of the window range and scroll up to the row again, the LoadingRowDetails fired again, thus reloading the fields in the details section with default values and thus the state of the fields is lost.

Is there any way to control the re-firing of the LoadingRowDetails on scroll if the row details section is already expanded.

Please provide your inputs.


Thanks,
Regards,
Mausami Sawant.

Mausami
Top achievements
Rank 1
 answered on 02 Jun 2011
1 answer
149 views
i am testing your solution from DEMO "Custom filter row" and i would like to know somethng about date filter. Why after i load my radgridview and i want to filter my datatime column i see selected date 1000 01 01 :/ i would like to see for exmple todauy day on start and selected after filter.
Marcin
Top achievements
Rank 1
 answered on 02 Jun 2011
3 answers
232 views
I will start by saying that I love the new RadTimeBar control.  It was exactly the sort of control we needed for our app that is currently under development.

As soon as I got the control, the first thing I tried was to bind PeriodStart, PeriodEnd, SelectionStart and SelectionEnd up to my ViewModel.  This hasn't worked very well though.  Binding PeriodEnd and PeriodStart in XAML would work only if I did the bindings in that order (ie: end first and then start).  Unfortunately VisiblePeriodEnd would always equal VisiblePeriodStart which always equalled PeriodStart so the user would have to stretch it out.  After adjusting VisiblePeriodEnd, it would then lock up at PeriodEnd and not be changeable any more.  In the end, I decided to set PeriodStart, PeriodEnd, VisiblePeriodStart and VisiblePeriodEnd to the required values from the ViewModel in the View's DataContextChanged event.  This set everything correctly and enabled the user to then adjust both VisiblePeriodStart and VisiblePeriodEnd.

Anyway, on to my main issue.  I am binding SelectionStart and SelectionEnd in XAML to my ViewModel and it works kinda ok but not really great.  My ViewModel validates the date range selection that the user has asked set using the TimeBar and then stores the validated value instead of the user requested value.  The problem I have is that if the user selects a date range with the TimeBar that when validated results in the same values that are already stored, even though I raise the PropertyChanged events for the properties that SelectionStart and SelectionEnd are bound to, the visual selection on the screen does not update (ie: revert to the previous values that were valid) and instead keeps the user requested values.   I don't see this as as a bug as such as I can see you guys developed the control with it's own validation, but if this is a feature that could be added it would be much appreciated.  For now, as our app is still under development, we are ok with releasing the current functionality to our beta testers as is, but we'd love to have this changed if possible.  In fact, I would love it if I could bind to the ViewModel not just SelectionStart and SelectionEnd but PeriodStart and PeriodEnd as well.

Hope that all made sense =)

Cheers,

Nick Barrett
Tsvetie
Telerik team
 answered on 01 Jun 2011
8 answers
226 views
Hi I can see this from your release notes "Ability to see which item was checked initially in tri state mode"  here http://www.telerik.com/versionnotes.aspx?id=2268

any info on how to use this ?

Best regards
Kristján.
Petar Mladenov
Telerik team
 answered on 01 Jun 2011
2 answers
473 views
Hi,

I'm fairly new to playing with the RadRichtextBox and am wondering if anyone would know how to get around this problem.  I am programatically formatting font and then adding text to a Rich Text Box like so (richTB is a RichTextBox decalred in the XAML):

richTB.DocumentInheritsDefaultStyleSettings = true;
richTB.FontSize = 11;
 
Section sec = new Section();
 
Span sp = new Span();
sp.Text = "Some Text I want to write to RTB";
 
Paragraph par = new Paragraph();
par.Inlines.Add(sp);
 
sec.Blocks.Add(par);
 
richTB.Document.Sections.AddBefore(rtb.Document.Sections.First, sec);

Now, this works fine, the text appears at the start of the RichTextBox.  My problem is that if I move the cursor to the next line, the font changes to something bigger (default font size of original Section).  I've tried to remove all section of the document using:

richTB.Document.Sections.Clear();

Before writing the text I want to write to the RichTextBox but this call causes an exception (Object reference not set to an instance of an object.). Why can't I clear the collection? 

Is there something wrong with removing sections?  If there is, is there a way I could just change the font of the original section to use what I defined for the RadRichTextBox?  That is my real problem.

Thanks,

-- Joel



Joel
Top achievements
Rank 1
 answered on 01 Jun 2011
1 answer
58 views
I noticed the following behavior after updating from Telerik version 2010.3.1110.40 to 2011.1.0419.40:

When a GridView is placed in a RadPane (they are docked as documents) and RadPaneGroup.AllowDragReorder = true

a) the GridView filter menu closes if you try to klick any control in it without the control reacting correctly. For example, if you try to click a checkbox, the checkbox doesn't get checked/unchecked and the menu closes. The only exception are comboxes: They can be opened but you can't select any item in it.

b) the horizontal GridView scrollbars don't scroll anymore (only in very small increments and this occurs only when dragging the scroll marker) or scroll the GridView content vertically all of a sudden.

If I set "RadPaneGroup.AllowDragReorder = false" everything seems to be fine.
Yordanka
Telerik team
 answered on 01 Jun 2011
1 answer
205 views
I would like to completely create my docking control and the panes inside dynamically at runtime. For some reason I am having a difficult time understanding the parent/child relationship of some of these controls. What I am looking to do is to create a docking control with evenly sized panes that can be used in a dashboard type screen. Meaning it would layout more like a grid. However, the client could re-arrange and save the layout however he/she desired. Are there any c# examples that I could draw from?

As an example this code throws an error. The only thing that is static xaml is the HomPageDocking control.

RadSplitContainer splitContainer = new RadSplitContainer();
WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.facebook.com");
RadPane browserPane = new RadPane();
browserPane.Header = "Facebook Widget";
browserPane.Content = browser;
splitContainer.Items.Add(browserPane);
this.HomePageDocking.Items.Add(splitContainer);


 

Rod

Konstantina
Telerik team
 answered on 01 Jun 2011
5 answers
302 views
I'm applying the Windows7 theme to the standard listbox so that it's appearance blends in with the rest of my application, but I'm finding something super annoying. I can't get rid of the vertical scrollbar. I've tried setting the scrollviewer properties, but the don't make any difference. No matter how many items I have in my listbox, it shows the scrollbars. When I don't apply the theme, it only shows the scrollbar when the # of items is greater than the height of the box.

How do I get that auto visibility back?
Rayne
Top achievements
Rank 1
 answered on 01 Jun 2011
5 answers
156 views

Hi,

I have a hierarchy gridview where the rows in each childgrid have a column with a checkbox for its value.  When the user clicks on that checkbox, I want that child row to enter the parent grid and that child's parent to enter the child grid.  In other words, I want to flip-flop the parent row and selected child row.

My problem is I am having trouble finding an event that captures what child row was selected and if they indeed checked off the check box.

I tried to provide screenshots, but I'm having some trouble pasting them into this message.  Not sure if it's possible to do so.

Please let me know if you need any additional information.

Thank you,
Joe

 

Ivan Ivanov
Telerik team
 answered on 01 Jun 2011
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
DataPager
PersistenceFramework
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
NavigationView (Hamburger Menu)
Wizard
ExpressionEditor
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
Callout
PasswordBox
SplashScreen
Localization
Rating
Accessibility
CollectionNavigator
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?