Отображать элементы в PropertyGrid в последовательности, в которой они объявлены

Можно ли отображать элементы PropertyGrid в пользовательском интерфейсе так, как они объявлены? Я обнаружил, что они сортируются сначала по CategoryAttribute, а затем по атрибуту DisplayName в порядке возрастания.

Я использую.NET версии 3.5 с использованием Visual Studio 2010 Ultimate.

РЕДАКТИРОВАТЬ

Приложение представляет собой приложение WPF.

1 ответ

Решение

Из этого документа: http://msdn.microsoft.com/it-it/library/system.windows.forms.propertysort.aspx

если вы установите свойство PropertySort в PropertySort.NoSort порядок сортировки свойств должен соответствовать этому критерию: свойства отображаются в том порядке, в котором они получены из TypeDescriptor.

Вы можете установить довольно много свойств, используя аннотации, одним из которых является "порядок отображения" с использованием System.ComponentModel.DataAnnotations.Display Attribute будет выглядеть так:

[DisplayName("Error"),Display(Order = 5)]
public string Error { get; internal set; }

Вы можете попробовать этот код.

private void propertyGrid1_PropertySortChanged(object sender, EventArgs e)
{
    if (propertyGrid1.PropertySort == PropertySort.CategorizedAlphabetical)
    {
        propertyGrid1.PropertySort = PropertySort.Categorized;
    }
}
Другие вопросы по тегам