Wpf GridControl v4.0.0 has been released
During development, we discovered that although WPF technology has many advantages, it utilizes a lot of computer resources. Therefore, creating a high quality and high performance product requires significant developer experience and deep understanding of technology. Out developers have invested of lot of effort in GridControl and as the result it has all the advantages of its [...]
.NetGrid v2.8.1 has been released. Hierarchical data relation
The main new feature in the version 2.8.1 is support for building a hierarchy of tables linked with DataRelation. New .Net Grid features: [NEW] Building hierarchy in a grid consisting of multiple tables using datarelation. The following bugs have been fixed: When a new theme was created basing on an existing theme, appearance data [...]
Why BindingList is slow with objects implementing INotifyPropertyChanged interface
A BindingList<T> is the main tool for binding objects to grids. It is a container that may notify subscribers when data is added or removed. For this purpose it provides public ListChanged event that specifies collection changes with ListChangedType. Besides changing the collection itself (adding, removing, etc) the binding list notifies of data object changes. [...]
Binding list and thread safety
Data binding is the basis of modern applications based on separation of data layer from presentation layer. The main purpose of such separation is to make application logic independent of its representation. Otherwise, logic code should not directly call presentation layer class methods (i.e. Control class methods). When internal state changes, business logic layer sends [...]
Declarative data binding
Component model has two basic interfaces that are broadly used in data binding: INotifyPropertyChanged and IBindingList. The first interface notifies subscribers of bound object modifications while the second one notifies of object collection modifications. Object collections usually don’t contain hierarchy information and they are not intended for this purpose. Different grid developers use different ways [...]