We have a scenario where we will have to execute stored procedures and display the data on xamgrid. Some of the stored procedure return upto 50K records and therefore we would like to display them using virtual collection. However, we also have a scenario where the output of the stored procedures can change at times(may return new set of columns) based on the business requirement. We would not like to change the model everytime that happens hence we return a standard type of IEnumerable<Dictionary<string, object>>. Please let me know if its still feasible to use virtual collection under the given constraints.
Hi,
sorry for the late response,
there is no problem using VirtualCollection as long as you use a Dictionary<string, object> as items.
From XamGrid point of view you will need to use XamGrid's String Indexers Support feature. This approach will work well if:
I have attached a sample solution outlining this approach(xamGrid part only).
Sincerely,
I have a similar issue in my Xamgrid. But in my case Autogenerated Columns will be false and i am also using IEnumaerable<Dictionary<String, Object>> collection. But i want to know what Type of Virtual Collection should i be creating. I am using LightWeight Silverlight DataTable as given here.
Note :- As you mentioned about "String Indexers Support" feature in XamGrid Link is broken. So could you able provide alternative to that.
you should most probably use VirtualCollection<<Dictionary<string, object>>>.
I am attaching the updated sample which uses the VC as item source. I have also repaired the link.
Let me know if you have any further questions.
Regards,
Thanks for your quick replay.
I have seen your sample but i have few more Queries.
First i will mention follwoing things.
1) In my case columns are dynamic. so i cant hard code the columns.
2) When i add columns dynamically to the grid conditional formatting is not working. because i feel TextColumn
taking the datatype as object.
Actually i have created one sample. but in that i have not implemented the Virtualization because i didnt get time.
if possible update the same solution for Virtualization and conditional formatting should work for int , decimal kind of columns..
I took some time to check why you are unable to see the case I created. It seams the case has been assigned to the user that created this forum thread(SilverDev). Sorry for the confusion created. A new support case for you is created its id is: CAS-65032-M8GRHP. Hopefully you will be able to find it in "My Support Activity" section.
Sorry for the confusion once again.
Issue :- "FontWeight isn't applied when the ConditionalFormatRule is Row". you have informed me about a support case - its id is CAS-64389-R40TGY".But I didnt get any notification for this support case.I am not able to find the support case Id, when i went to "My IG -> My Support Activity" or by using the link provided by you.Please if you have a sample could you please attach it. Its my kind request..
I am not sure why you cannot find the case. However, there is no solution to this issue in the case its main purpose is for you to be notified when a there is a Service/Volume release containing the fix for the issue you've reported.
As I said before next service release should be out around the end of the next week or the beginning of the week after that.
Hi ,
I am not finding any Support Activity when i click the link and Even when i went to "MY IG -> MY Support Activity". I think, i might don't have the permissions for that Support activity. if you have a sample could you please attach it. Because my client need very urgently. So any how i have to make Cell BOLD.
You could check out this thread - as Stoimen has replied there the XamGrid does not support the filtering interfaces of the VC. The Stoimen's suggestion looks the best thing you could do to workeround this limitation.
You need to hook up to grid's filtering events to know when the filters are changed. On such a change you need to get the new set of filters and provide them(in the ItemDataRequested event handler) to the call to your service - this way the service will return only filtered data.
Another thing you should do is to inavalidate the VC's cache in order to make the vc to request all the elements in the page. You could do so by calling VC's Refresh() method.
HTH,