To reproduce: create a form with a button on it where on its Click event you show another form with the following code snippet:
public class Dummy
{
public int ID { get; set; }
public string Description { get; set; }
}
public Form1()
{
InitializeComponent();
this.radGridView1.FilterChanged += radGridView1_FilterChanged;
if (File.Exists(@"..\..\..\layout.xml"))
{
this.radGridView1.LoadLayout(@"..\..\..\layout.xml");
}
else
{
radGridView1.Columns.Add(new GridViewTextBoxColumn { HeaderText = "Id ", FieldName = "ID" });
radGridView1.Columns.Add(new GridViewTextBoxColumn { HeaderText = "Description", FieldName = "DESCRIPTION" });
}
radGridView1.EnableFiltering = true;
radGridView1.MasterTemplate.ShowHeaderCellButtons = true;
radGridView1.MasterTemplate.ShowFilteringRow = true;
var items = new List<Dummy>();
for (int i = 0; i < 20; i++)
{
var dummy = new Dummy
{
ID = i,
Description = string.Format("Description_{0}", i)
};
items.Add(dummy);
}
radGridView1.AutoGenerateColumns = false;
radGridView1.DataSource = items;
}
private void radGridView1_FilterChanged(object sender, GridViewCollectionChangedEventArgs e)
{
this.radGridView1.SaveLayout(@"..\..\..\layout.xml");
}
Please refer to the attached gif file illustrating the steps.