WPF Data Grid — Upcoming Features (v22.2)

WPF Team Blog
17 August 2022

In this blog post, I’ll outline WPF Data Grid enhancements we expect to deliver in v22.2. We encourage you to answer the survey questions for each item described below. Your responses will help us fine tune our development plans.

The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This blog post and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.

Filter Popup, Filter Editor, Filter Panel Optimization

Our WPF Data Grid has a highly-optimized filtering engine. This engine allows you (and your users) to find records against extremely large datasets within milliseconds. This notwithstanding, our recent research demonstrated that the UI can act as a bottleneck when a filter includes hundreds of items. In our next major update, we will optimize the following Data Grid elements to enhance UI responsiveness when complex filters are applied:

  • Filter Popup
  • Filter Editor
  • Filter Panel
  • MRU Filter List

Our tests indicate that we can improve performance significantly (in the following test, we included 500 filter items):

WPF Data Grid Filtering Optimization

Tree List Async Node Loading

As you know, our WPF Tree List fully supports on-demand data loading. This feature allows you to load rows only when a node is expanded. While on-demand loading reduces startup time, end-users may encounter a “frozen” UI as the TreeList expands a node with many children. In v22.2, we expect to implement asynchronous node loading and allow you to load child nodes without UI thread locking:

Here are the capabilities we expect to include with our Async Node Loading engine:

  • You can dynamically determine which nodes to load in an asynchronous child node selector.
  • A wait indicator will appear when a user expands a node.
  • The Tree List will display additional wait indicators for nodes that must retrieve information to help determine whether to display the “+” button.
  • A user can hover the loaded node’s wait indicator and cancel a load operation.

Tree List Update Optimization

Typically, it’s more efficient to process mass updates in batches so that each individual update doesn’t generate unnecessary data calculations. You can call the BeginDataUpdate and EndDataUpdate to process batch updates in the Tree List. During performance testing, we discovered that our BeginDataUpdate/EndDataUpdate implementation can be enhanced so it allocates much less memory. This will allow the garbage collector to use less CPU time. Our tests indicate that this will reduce update time by 50% when TreeList contains 1000000 nodes and 1000 new items are inserted.

Tree List Updatea Optimization

Total Summary at the Top of the Data Grid

Over the last few years, users have asked us to move the summary panel to the top of the Data Grid. This may be helpful when you need to track important summary information within a Data Grid with many rows and columns.

Data Grid Total Summary at the Top

UnboundDataType

Our WPF Data Grid allows you to use the following unbound column types: Integer, Decimal, DateTime, String, Boolean, and Object. All custom types must be used as “Object”. This requirement may produce unwanted side effects during filter and sort operations (because the Data Grid cannot determine the data property type). We expect to introduce a GridColumn.UnboundDataType property in our next release. This property will allow you specify any type for unbound columns. For example, you will be able to use types such as TimeSpan or DateTimeOffset - with accurate support for filtering, sorting and other data shaping operations.

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.