title: C# Custom DataView
body: <p>I have some requirement to implement a very non-standard sort in my data grid, the grid is currently bound to a DataView with the Original rows data row filter set, the data comes in realtime so i do an accept changes on a timer every second to show any changes made on the underlying data table. The grid is read-only, it's purely displaying realtime data.</p>
  
  <p>For brevity i'll skip the details of the sorting. To solve this problem, I implemented some custom data view (read-only) that accepts a DataView as the source data (allowing me to still filter on row state and keep the virtual grid pattern for the realtime data). This collection / data view can be bound to the grid. My problem is keeping the custom data view's internal collection updated with any changes on the underlying data view. I tried at first to listen to the underlying data view's ListChanged event but even if i only add one row on the underlying data table and call accept changes I get the Reset event type meaning I have to refresh the whole collection - we could be talking about thousands of rows being refreshed (and re-sorted) just because of an update to a single row.</p>
  
  <p>Anyone any experience with this before? I'm wondering how the grid does it, i know even if you give it a data table it's actually binding itself to the table's default view so does this mean that the data grid is reloading the whole collection of datarows from it's view even for a single row update?</p>
  
  <p>Sorry for the long post!!</p>
  
  <p>Appreciate any inputs, workarounds or even design alternatives...</p>
  
  <p>Thanks
  Adrian</p>