Data templates provide a powerful way to present data using text, images, and anything else WPF is capable of. Often, we need to present the data in some order, typically sorted by some property (or properties). Sometimes we don't want to show all data, but a part of it, such as when a user searches for something and we want to show the result of the search, which maybe just a subset of the original data.
One way to go about it is to operate on the data itself. We can certainly apply sorting on lists (List<T>.Sort
, Array.Sort
, and so on), as well as filtering (List<T>.FindAll
), and by using Language Integrated Query (LINQ) it's even easier (and more versatile) to sort (orderby
clause) and/or filter (where
clause) to get a new collection. Although this works, it requires explicitly binding the resulting collection to the correct controls (some may show the original collection, some may show sorted/filtered data).
WPF provides an alternative...