I manage a large WPF desktop data processing application that utilises data grids in a big way, with some fairly complex use cases. All this has been accomplished using the vanilla .Net DataGrid, and inevitably involved a lot of jumping through hoops to get the required, complex functionality to work.
We're now embarking on a new app and the thought of working with the vanilla DataGrid fills me with dread, so I'm looking into a 3rd-party control.
I've listed the broad set of features that I'm interested in below, if someone can say whether these are possible in XCeed:
* We do a lot of custom styling at different levels - column headeres, entire rows, individual cells. These are often based on properties of the objects bound to those rows and cells, using a variety of XAML techniques (styles, triggers, etc). Sometimes it's simply changing a cell's foreground or background while other times we might completely re-template a cell.
* In some scenarios we may want to drag to select a range of cells (sometimes across multiple rows), which I see is possible in the downloadable demo. I also noticed that this selection could then be copied to the clipboard and pasted into Excel. I assume the reverse is also possible, e.g. copying a range of cells in Excel then highlighting a range of cells in the DataGrid and pasting to overwrite those cells?
* Related to this, in some grids we allow the user to select a single cell, copy this to the clipboard, then select a range of cells in the same column, then paste to fill/overwrite that range.
* Similarly, some grids allow the user to select a range of cells in a single row. The user can then select a range of cells across multiple rows and paste this selection in (also involving validation to ensure this "target" range involves the same columns).
* We use a lot of context menus, often changing which menu options are visible/enabled based on which cell the user has right-clicked for example. Is this sort of thing possible?
* We do a lot in code-behind, often relating to copy/paste, context menus, and so on. We've written all sorts of helpers to be able to determine which row or column has been selected, and access the underlying VM or property. I guess all this is fairly trivial?
* Does the data grid support the INotifyDataErrorInfo interface, and display validation annotations where appropriate?
* One-click editing is a big one for us, but I can see from the downloadable demo that this is supported.
I realise I could trial the datagrid for 45 days, but like any data grid I'd likely spend the entire trial getting my head around the complexity, features and documentation, and still not explore the feasability of every feature that we've implemented in our existing product!
I'm not overly concerned about performance as the grids typically aren't that large (maybe a few hundred rows, and a hundred columns at most).
Thanks in advance