private static void CreateColumns(AutoGeneratedListView lv) { var gridView = new GridView { AllowsColumnReorder = true }; // get only declared properties from DataType var properties = lv.DataType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly); foreach (var pi in properties) { var browsableAttribute = pi.GetCustomAttributes(true).FirstOrDefault(a => a is BrowsableAttribute) as BrowsableAttribute; if (browsableAttribute != null && !browsableAttribute.Browsable) { continue; } var binding = new Binding { Path = new PropertyPath(pi.Name), Mode = BindingMode.OneWay }; var gridViewColumn = new GridViewColumn() { Header = pi.Name, DisplayMemberBinding = binding }; gridView.Columns.Add(gridViewColumn); } lv.View = gridView; }