The DataGrid has the ability to add custom controls to the cell via Template columns; however, the contents of the cell are always visible and there is no way to distinguish between editing and display modes like you can with the type data columns. Furthermore, it may be desirable to create custom column types as the reusability would be easier than using a template or a template selector.
Currently, the DataGrid columns are public and unsealed; however, much of their internals are marked as internal. For example, overriding the CreateCellArranger method would allow custom editor types when the cell is edited. This would require exposing the CellArranger base classes as well.
Please mark more of the internals as public so that truely custom DataGridColumns can be created.
Currently in 2019 R2 and earlier, the "options" button at the bottom of the filtering UI allows the user to rearrange and toggle the visibility of columns in the DataGrid.
I request to have a property or setting on the DataGrid or the DataGridColumn that will prevent the user from changing the visibility or ordering of columns. from that UI (just like you can prevent user filtering or user sorting)