Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
1365
Collection not refreshing
posted

I've set the dataschema manually in my ultraGrid1 (version: 12.1.20121.2135).

I have a List<Person> and every Person class has a List<Order>.

The datasource property of the grid is simply set at runtime, like:

List<Person> People = DummyRepository.GetPeople();

ultraGrid1.Datasource = People;

At first none of the people have an Order in their collection. At runtime the user can add an order. When the user does this I set the datasource again with People. But unfortunatly it doesn't show the added Order. I tried after setting the datasource property:

ultraGrid1.Rows.Refresh(Infragistics.Win.UltraWinGrid.RefreshRow.ReloadData)

ultraGrid1.Rows.Refresh(Infragistics.Win.UltraWinGrid.RefreshRow.RefreshDisplay) 

And even:

ultraGrid1.Databind()

Nothing helps.

The only thing that seems to help is setting the datasource to null first and then setting the datasource to the collection. But then I have another problem, which I'm not sure I should get in to right now. You see I also have custom Row Layouts which I havent mentioned yet. But if I set the datasource to null the grid loses the custom row layout I designed in the designer at runtime.

I can set the datasource to null and keep displaylayouts by first saving and then loading the displaylayout, but... That shouldn't be the solution. Feels pretty forced to me. Besides I'll lose other properties like spacing between rows and such appearances.

So... How can I solve this?

Parents
No Data
Reply
  • 469350
    Offline posted

    Hi,

    List<T> is not a good data source to use for bound controls. This interface will only provide basic support for binding, and it doesn't have all the property notificaitons for data binding. I recommend changing to BindngList<T>, instead. I'm not sure if that will solve this particular problem, but it will certainly save you some headaches down the road.

    If it doesn't solve the issue, the my guess is that grid cannot build the proper structure from your data source. Implementing your own data objects like this can be tricky and the grid will build the bands up front as soon as it's bound. So if the data source originally has no Order data, then the BindingManager might be unable to create the child band structure and that's why it's not working.

    Make sure that, even when there are no Order rows, you Person object always returns an empty list (not null).

    If that still doesn't help, see if you can post a small sample project here so I can check it out and I will figure out why it's not working in your case and let you know how to fix it.

Children