private void lvDesign_ColumnReordered(object sender, ColumnReorderedEventArgs e) { var layout = XDocument.Parse(LayoutXml.OuterXml); var cells = layout.Descendants().First().Descendants().First().Descendants(); var source = cells.ElementAt(e.OldDisplayIndex); var target = cells.ElementAt(e.NewDisplayIndex); if (e.OldDisplayIndex > e.NewDisplayIndex) { target.AddBeforeSelf(source); } else { target.AddAfterSelf(source); } source.Remove(); LayoutXml.LoadXml(layout.ToString()); IsLayoutXmlChanged = true; }