Есть ли способ сделать .NET Forms
PropertyGrid
уважать DisplayNameAttribute
, когда он сортирует свойства нескольких выбранных объектов. Когда один объект выбирает сортировки PropertyGrid
на основе DisplayNameAttribute
, но при выборе нескольких объектов он использует фактическое имя свойства для сортировки..Net Forms PropertyGrid игнорирует DisplayNameAttribute при сортировке свойств для нескольких выбранных объектов
Следующий код демонстрирует проблему:
static class Program
{
[STAThread]
static void Main()
{
Form myForm1 = new Form();
myForm1.Width = 820;
myForm1.Height = 340;
PropertyGrid grid1 = new PropertyGrid();
grid1.Left = 0;
grid1.Top = 0;
grid1.Width = 400;
grid1.Height = 300;
myForm1.Controls.Add(grid1);
grid1.SelectedObject = new MyObject();
PropertyGrid grid2 = new PropertyGrid();
grid2.Left = 400;
grid2.Top = 0;
grid2.Width = 400;
grid2.Height = 300;
myForm1.Controls.Add(grid2);
object[] objects = new object[] { new MyObject(), new MyObject() };
grid2.SelectedObjects = objects;
Application.Run(myForm1);
}
}
public class MyObject
{
[DisplayName("ZZZZ")]
public int AProperty
{
get;
set;
}
[DisplayName("BBBB")]
public int BProperty
{
get;
set;
}
}
Предыдущий код делает Form
с дваPropertyGrids
. Левая сетка содержит единственный объект в своем выборе, в то время как правая сетка содержит два объекта в своем выборе.
Все объекты одного и того же типа. Левая сетка сортируетproperties
на основе DisplayNameAttribute
, в то время как правильная сортировка основана на фактическом названии. В обоих случаях DisplayNameAttribute
представлен как свойства называют в сетке:
Могу ли я силаPropertyGrid
всегда использовать DisplayNameAttribute
когда сортировки?
Wow Microsoft ..... какой смысл отображать алфавитный рода ... если вы не сортируете отображаемое имя? Должен быть способ сделать это. – 00jt