Я пришел с кодом ниже, который доказывает обратное.
Фрагмент выберет первую категорию отсортированного списка.Можно также выбрать первый элемент в этой категории, расширяя метод, но для моих нужд это было не нужно.
// bind the PropertyTable to PropertyGrid
this.pg_Prefs.SelectedObject = proptable;
// get selected item
GridItem gi = this.pg_Prefs.SelectedGridItem;
// get category for selected item
GridItem pgi = gi.Parent.Parent;
//sort categories
List<GridItem> sortedCats = new List<GridItem>(pgi.GridItems.Cast<GridItem>());
sortedCats.Sort(delegate(GridItem gi1, GridItem gi2) { return gi1.Label.CompareTo(gi2.Label); });
// loop to first category
for (int i = 0; i < pgi.GridItems.Count; i++)
{
if (pgi.GridItems[i] == gi) break; // in case full circle done
// select if first category
if (pgi.GridItems[i].Label == sortedCats[0].Label)
{
pgi.GridItems[i].Select();
break;
}
}
Надеюсь, это поможет и другим.
Упрощенный метод фактического выборакатегория после сортировки списка будет sortedCats[0].Select();
вместо циклического просмотра и проверки каждого элемента.Вы должны были бы утверждать, что список не пустой, если вы хотите использовать этот ярлык, но это даст некоторое улучшение производительности ...