Отображать элементы в 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;
}
}