I want to bind an UltraGrid to a generic list of strings using List<string> (c# generic class).
I've set up a BindingSource.DataSource to my List<string> object, but when I hook it up and run my program, the UltraGrid shows a single column bound to the Length property showing the Lengths of my strings instead of showing me the actual list of string data.
If I set a System.Windows.Forms.Listbox or ComboBox to use the same BindingSource, I get the expected list of strings shown.
Why can't an UltraGrid do the same thing? I couldn't find any help on this seemingly simple thing.
Do you have the lates Hot Fix? I'm pretty sure this was fixed.
Mike Saltzman"] Do you have the lates Hot Fix? I'm pretty sure this was fixed.
I'm using NetAdvantage 2008 Vol1 which was just released 2/19. Not even two weeks ago.
There's hotfixes already? I just looked around on my downloads page and there aren't any hotfixes listed for 2008 Vol 1.
Have you seen any fix to this issue?
We're using the 2008 vol. 2 in our case and i still don't know how to fix this....
Tnx!
Hi,
I'm not sure what version this was fixed in, but I just tried it in the oldest currently-supported version, which is v9.2 and it works fine.
I recommend that you get the latest service release for the version you are using and see if that helps.
How to get the latest service release - Infragistics Community
If that does not work, then you will probably need to upgrade. You might want to download a trial version of the latest release (v10.1) and try it out.
I've tried 9.2 as well but didn't fixed our issue, i forgot to mention something by the way.
If you pass in a simple List<int> type as the datasource it works just fine, but if instead you create a class that derive from List<int>, for example:public class RolesCollection : List<int>{ }
and you pass in a instance of that class instead, it wont create the 'Value' column like it did for the List<int> type...
Could you confirm this?
I just tried this out and it works just fine for me:
private void Form1_Load(object sender, EventArgs e) { //List<int> list = new List<int>(); MyList list = new MyList(); list.Add(1); list.Add(2); list.Add(3); this.ultraGrid1.SetDataBinding(list, null); } public class MyList : List<int> { }
You're right, i've just checked, and it seems a BindingSource issue, our grid is binding thru a binding source 99% of the time, so it looks like it was a problem related to the grid but it looks more related to the bindingsource, since the grid is retrieving it's properties thru this component!
Well this solved this case then, thanks alot! Sorry for loosing your time, we should have test that before even hitting this site!
Hi Mike,
Thanks a lot for the quick response. I tried to bind the grid with UltraWinDataSource correctly using ILists for the childbands. Thanks for your help!
-Bhargavi R.
Hi Bhargavi,
You can't bind each band in the grid individually. You have to create a DataSource, such as a DataSet or UltraDataSource that has a hierarchical structure of data. If you are using a DataSet, which is probably the most common data source, then you need to defined RelationShips between the tables. I'm sure Microsoft has documentation on creating hierarchical data relationships with a DataSet.
Here's a bunch of KB articles to get you started:
HOWTO:Bind to hierarchical data source using Northwind Part 1
HOWTO:Bind UltraWinGrid to program generated hierarchical data Part 1
HOWTO:Bind UltraWinGrid to a DataSet
Could you please tell how to bind if there are more than one band in the grid. I want to bind the grid with separate typed lists for each band. I am trying different ways but unable to bind the grid correctly.
Any help is greatly appreciated!
Thank you,
Bhargavi R.
No problem, i'll get back to you here once i get some time to test this out...
Thanks!