I'm doing a project using Telerik 2011_3_1220 version. Anyother thing is nice except for one which related to the radGridView, the senario is like below:
Senario description:
I have data struction somehow like this:
a> Basic data
Library -> Contains own properties and a List<ObjectType>
ObjectType-> Contains own typeID and other properties
ObjectInstance-> Contains own properties and a List<Property>
Property-> Contains value and name and other properties.
b> Data in ViewModel
SelectedLibraries -> List<Library>
AllObjectInstances -> Dictionary<ObjectTypeID, List<ObjectInstances>>
Now on my UI I have a treeview on left panel and gridview on right. Treeview is bind with SelectedLibraries which shows a hierarchical structure of Library and ObjectType for user to select. Upon user's selection of ObjectType, gridiview on the right side will be populated with data of the corresponding ObjectType. The data of the gridview is from AllObjectInstances[SelectedObjectTypeID]. Each ObjectInstance stand for one row, each ObjectInstance.Property.name stand for one column and each ObjectInstance.Property.value stands for the content poped into each gridview cell.
My solution:
Upon user's selection, I'll look for the corresponding collection of AllObjectInstances[SelectedObjectTypeID] and pass into a function which will translate this into a DataTable. The DataTable will take name of Property.name as column name and fill up the table with Property.value.
The gridview will be bind to this DataTable. So each time user select another ObjectType, the DataType will be re-formed again and Notify UI update.
Problem:
If the Property contains in an ObjectInstance is not so many (less than 100), the performance is acceptable. But if the Property is more than that, every time user switch selection will take long to wait UI update which will fed up users.
For the gridview, I already enabled both row and columns virtulization.
This problem looks to me is like every time I need to do a data re-binding which could be comparatively slow, but I didn't expect can slow like this.
Is there any advise or solution to conquer this problem? Or even my solution is totally wrong I won't mind to re-structure, as long can improve the performance significantly.
Senario description:
I have data struction somehow like this:
a> Basic data
Library -> Contains own properties and a List<ObjectType>
ObjectType-> Contains own typeID and other properties
ObjectInstance-> Contains own properties and a List<Property>
Property-> Contains value and name and other properties.
b> Data in ViewModel
SelectedLibraries -> List<Library>
AllObjectInstances -> Dictionary<ObjectTypeID, List<ObjectInstances>>
Now on my UI I have a treeview on left panel and gridview on right. Treeview is bind with SelectedLibraries which shows a hierarchical structure of Library and ObjectType for user to select. Upon user's selection of ObjectType, gridiview on the right side will be populated with data of the corresponding ObjectType. The data of the gridview is from AllObjectInstances[SelectedObjectTypeID]. Each ObjectInstance stand for one row, each ObjectInstance.Property.name stand for one column and each ObjectInstance.Property.value stands for the content poped into each gridview cell.
My solution:
Upon user's selection, I'll look for the corresponding collection of AllObjectInstances[SelectedObjectTypeID] and pass into a function which will translate this into a DataTable. The DataTable will take name of Property.name as column name and fill up the table with Property.value.
The gridview will be bind to this DataTable. So each time user select another ObjectType, the DataType will be re-formed again and Notify UI update.
Problem:
If the Property contains in an ObjectInstance is not so many (less than 100), the performance is acceptable. But if the Property is more than that, every time user switch selection will take long to wait UI update which will fed up users.
For the gridview, I already enabled both row and columns virtulization.
This problem looks to me is like every time I need to do a data re-binding which could be comparatively slow, but I didn't expect can slow like this.
Is there any advise or solution to conquer this problem? Or even my solution is totally wrong I won't mind to re-structure, as long can improve the performance significantly.