I've updated my project from 8.3 release to 11.1. I did not introduce any changes to the code but the application stopped working.
it hangs on the following line: itemGrid.DataSource = value
itemGrid is UltraGrid, value is List<MyClass>
itemGrid.InvokeRequired is false
by hangs I mean that application is not responding and taking whole CPU - as if ultraGrid is in some kind of infinite loop
any idea how to track the bug?
Hi,
I just wanted to know if you were able to solve your issue based onmy suggestions or you still need help? Just let me know.
Thank you.
Hello again!
I've postponed the upgrade till now. The problem still occurs, even in version 11.2. The symptom is the same as before.
I disabled "Just My Code" debugging. This allowed me to see why does it hang on assigning the DataSource.
Let's say we bind an empty list (Enumerable.Empty) to a data source of a type defined as follows:
public interface IGroup
{
IEnumerable<IGroup> RecursiveList { get; }
KeyedCollection<int, IGroup> ChildGroups { get; }
}
Of course the interface is more rich, but for sake of clarity let it be that thin.
The part of the call stack is in the attachment.
Unfortunately I can't post the full code, but I've managed to create a simple project that may be helpful in solving the problem.
Actually I was not able to reproduce the hanging issue. Instead it shows that assigning data source may be bugged. Have a look at it and follow the comment inside IRecursive interface to see strange UltraGrid behaviour.The point is that when ChildGroups is defined as generic ICollection the message pops up. When you change its type to KeyedCollection, the message is not displayed. Seems a bug to me.
I'm looking forward to your reply.
Regards,
Pokrec