You're right - it’s fairly complicated to implement a frozen column on the right side. To do it, you’d have to:
Subclass DataGrid to add new properties like RightFrozenColumnCount (if you wanted to freeze more than one column)
Subclass DataGridCellsPanel and override ‘MeasureOverride’ and ‘ArrangeOverride’ methods to arrange cells accordingly (this is probably the biggest part of the problem). One has to note that this is the
class which has most of the implementation for column virtualization (and most of hidden columns) too which makes it more difficult.
Subclass DataGridColumnHeadersPresenter to modify the end user column reordering to account for right frozen columns.
Retemplate/restyle DataGrid to account for above changes
Retemplate DataGrid to position horizontal scroll bar appropriately
There might be other small changes
As far as I know, I don't believe there are any samples of this implemented available at this time (if you write one, please share!). You're not the first to make this request, so this is a feature that we will consider adding in a future release. However,
it definitely won't be in .NET 4.0, so it will likely be a while before an official solution is available. We apologize for the inconvenience - unfortunately we just couldn't fit all of the features we wanted in V1. If you do come across a sample or guidance,
please post a link to it here so that other developers can use it also.