To reproduce:
BindingList<Item> items = new BindingList<Item>();
public Form1()
{
InitializeComponent();
Item dataItem1 = new Item(1);
dataItem1.Name = "Cat";
dataItem1.GroupName = "Animal";
dataItem1.GroupSortPriority = 2;
items.Add(dataItem1);
Item dataItem2 = new Item(2);
dataItem2.Name = "Kitten";
dataItem2.GroupName = "Animal";
dataItem2.GroupSortPriority = 2;
dataItem2.ParentIndex = 1;
items.Add(dataItem2);
Item dataItem3 = new Item(3);
dataItem3.Name = "Trout";
dataItem3.GroupName = "Fish";
dataItem3.GroupSortPriority = 1;
items.Add(dataItem3);
radGridView1.Relations.AddSelfReference(radGridView1.MasterTemplate, "Index", "ParentIndex");
radGridView1.DataSource = items;
}
private void ExpandSomeGroups()
{
foreach (DataGroup group in radGridView1.Groups)
{
if (group.GroupRow.HeaderText.Contains("Animal"))
{
if (group.IsExpanded)
{
group.Collapse(false);
}
else
{
group.Expand(true);
}
}
}
}
public class Item
{
public Item(int index)
{
Index = index;
}
public int Index { get; private set; }
public int ParentIndex { get; set; }
public string Name { get; set; }
public string GroupName { get; set; }
public int GroupSortPriority { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
GroupDescriptor descriptor = new GroupDescriptor();
descriptor.GroupNames.Add("GroupName", ListSortDirection.Ascending);
radGridView1.GroupDescriptors.Add(descriptor);
ExpandSomeGroups();
}
You will notice that the "Animal" group is not expanded. However, if you remove the self-referencing hierarchy, the "Animal" group will be expanded.