Archives

Archives / 2004 / April
  • Really complex databinding: ITypedList with weakly typed collections

    I've finally managed to finish an article I wanted to write for a long time: Really complex databinding: ITypedList with weakly typed collections. The article describes in full how one of the most complex interfaces of .NET, ITypedList can be used to provide information to controls like the DataGrid control so complex databinding can be controlled by the developer: which property to hide, which property has to be set as read only because of the state of an object, which inner structure has to be exposed as a property etc. etc.. The example used in this article walks the reader through various topics: Custom attributes, ITypedList implementation for hierarchical data and non-hierarchical data and how to hide a property of a class in a databinding scenario. Source code for this example project is provided in C#. With this article I hope to pass on some information I've gathered during the past year working with ITypedList as the documentation on this important interface is pretty limited and a lot of developers will have to implement ITypedList some day.

    For the article, click here.

  • Really complex databinding: ITypedList with weakly typed collections

    Preface
    When you, as a developer, have written a class library which has to be bound to complex user controls like a datagrid, and you want control over the databinding process, you are confronted with one of the most complex interfaces to implement: ITypedList. I'm not sure if the reason why complex databinding is called complex is because of the complexity of the interface which makes this all possible, ITypedList, but I wouldn't be surprised.

  • Marketing tools in full effect

    In LLBLGen Pro I currently use the 1.7.4.0 release of the Magic Library for several GUI elements like docking windows. As this release was the final release before the library went commercial, no support was given, but that version was free, came with sourcecode, so no complaints here. As I'm adding new GUI functionalities to our O/R mapper, I required a nice tab control which not only looked nice but was more flexible than the .NET tab control. As Magic contains such a tab control, it was the obvious choice.

  • MVP!

    Microsoft made me a C# MVP! . I don't have to add that I'm very very very happy with this title and I hope I won't disappoint as an MVP in the coming year.

  • Do not read just code, learn algorithms.

    Joseph Cooney wonders which sourcecode should be read by a programmer to learn to become a better programmer. I'd say: none. At least, not the code for which you don't have the design documents or algorithm descriptions. A lot of code is very bad and it's pretty useless to just read code. The reason for that is that code is the end phase of programming software. What's way more important is the algorithm or set of algorithms the code has to represent. Only then you can learn something, because you can then see the start (algorithm) and end (code) of a transition every developer has to make a lot of times. Only with the algorithms in your hand you can check if the code you're reading is good code or not: if it doesn't describe / represent the algorithm(s) it has to represent, the code is buggy, bad and should be rewritten. You don't know that if you read sourcecode without the algorithm descriptions.