coming soon – Owl's Blog on .NET development http://www.componentowl.com/blog Component Owl codes Better ListView control all night so you don't have to. Tue, 04 Sep 2018 13:10:05 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.8 Coming soon: Better ListView 2.1 Optimized for Performance http://www.componentowl.com/blog/coming-soon-better-listview-2-1-optimized-for-performance/ http://www.componentowl.com/blog/coming-soon-better-listview-2-1-optimized-for-performance/#respond Mon, 05 Sep 2011 16:33:45 +0000 http://www.componentowl.com/blog/?p=348 Better ListView 2 comes with many hot features, like groups and item hierarchy. Great features, unfortunately, often come at the price of decreased performance. However, we want to have Better ListView both feature-rich and fast.

Some users noticed a performance drop when working with large number of items (say 10 000+). Our top priority for version 2.1 is the overall optimization of Better ListView. Several optimizations have already been made in the recent updates (column resizing and thumbnail images), but we have to go further. You can expect Better ListView to be much snappier in the upcoming 2.1 update. The optimizations will cover these areas:

  • Faster collection operations (adding, removing, sorting) of large number of items
  • Faster expand/collapse of groups and items
  • Faster column resizing with multi-line items

We will also take a look on smoother Visual Studio integration, so you can see Better ListView ready in toolbox just after installation (we have to deal with Visual Studio Packages, which is quite an esoteric topic). If Better ListView doesn’t currently appear in your Visual Studio toolbox automatically, you can just right-click the toolbox window, and use “Choose Items” to add the DLL file yourself.

Some background info for the more curious of you: Version 1.5 of Better ListView was very fast. It was so fast because every item in the list had precisely the same size. Some operations, like hit testing, was done in constant time and no extra measurement of individual items was necessary. The new major 2.0 version of Better ListView supports items with variable sizes, and irregular layout consisting of grouped items. However, we observed that even in complex settings, there are just few “types” of items – for example, there are only three possible item sizes when using multi-line items with up to three lines of text. Our optimizations will thus be focused on taking advantage of this to reduce most expensive operations back to constant time complexity.

photo by Michael Roper

photo by Michael Roper

]]>
http://www.componentowl.com/blog/coming-soon-better-listview-2-1-optimized-for-performance/feed/ 0
Better ListView 2.0 Sneak Peek (Item hierarchy, groups, more) http://www.componentowl.com/blog/better-listview-2-0-sneak-peek-item-hierarchy-groups-more/ http://www.componentowl.com/blog/better-listview-2-0-sneak-peek-item-hierarchy-groups-more/#respond Tue, 03 May 2011 09:28:55 +0000 http://www.componentowl.com/blog/?p=232 groups, tree-like item structure (tree nodes are collapsible, as expected), and multi-line items.]]> Hierarchical items in two groups

Hierarchical items in two groups

We are currently working hard on finishing Better ListView version 2.0 which will add new features: Support for groups, tree-like item structure (tree nodes are collapsible, as expected), and multi-line items.

We expect to release this upgrade in about a month. It will be a free upgrade for current and new users.

Groups

Groups in Better ListView have comparable capabilities as other Better ListView elements (column headers, items, sub-items). For example, you can adjust the foreground/background colors, font, image – and owner drawing is possible as well.

You can even include images into group headers (as you can see in the preview above), which is not possible in .NET ListView.

Groups are collapsible by default and the expand button can be switched off on each group individually.

Here are groups combined with Tile view (the second group is collapsed):

Groups with Tile view

Groups with Tile view

The previous figure displays vertically oriented groups, but Better ListView also support horizontally oriented groups in the List mode:

Groups with List view

Groups with List view

We put special effort to mimic the group display and behavior of Windows Explorer. The group headers can display all of the 15 group header states available in Windows visual style and their display is governed by the same logic as in the ListView counterpart.

The group headers always look perfect and native, right out of the box. You don’t need to tweak anything.

Item Hierarchy

Items with hierarchy

Items with hierarchy

This works in the similar way as in the standard TreeView control. Each item (or node) has property called ChildItems which can be filled with new BetterListViewItem instances. SubItems collection can still be used in either items and child-items (child items are treated in the very same way as their parents).

Item hierarchy can be combined with Groups feature as seen in the first preview.

Multi-Line Items

Multi-line items

Multi-line items

A simple setting of item layout (MaximumTextLines property) allows breaking item text into several lines (up to the specified value). When the text is longer than MaximumTextLines, then the default trimming method is used (one from the TextTrimming enumeration: None, TrimCharacter, TrimWord, EllipsisCharacter, EllipsisWord, EllipsisPath).

Multi-line text can be used in every view and also in column headers.

Another New Features

There are also bunch of new minor features including:

Adjustable paddings – Every element part (e.g. item check box, group image…) contains customizable spaces at each side, so the user can easily create space where he needs and customize items/column headers/group headers to the finest detail.

Focusing sub-items – Items, group headers and even sub-items can be keyfocused. User can now invoke label editing or scroll to any “cell” in the Details-with-columns view solely with keyboard.

IEnumerable implementations –  BetterListView, BetterListViewGroup and BetterListViewItem implements IEnumerable interface for iterating through the whole item hierarchy, so using recursion to traverse child items is not necessary.

]]>
http://www.componentowl.com/blog/better-listview-2-0-sneak-peek-item-hierarchy-groups-more/feed/ 0