title: Best practices for persisting ListView columns layout in WPF
body: <p>The goal is to let the user to hide/show/move/resize columns, to save this layout, and to be able to restore it when the app re-starts.
  I'll tell you first how I do it. On GridView.Columns, I attach to CollectionChanged, as well as to each Column.With dependency property. When any of the events is fired, I save the order, visibility and widths of the Columns to a proprietary string which I save to an XML settings file.
  But it seems to me that this is a quite a bit of manual work - are there popular existing components or practices for saving the Columns layout? </p>