2010-08-26 7 views
10

Czy istnieje właściwość, która pozwala określić przyjazną dla użytkownika nazwę właściwości w klasie?Czy istnieje atrybut .NET określający "wyświetlaną nazwę" właściwości?

Załóżmy, że mam następujące klasy:

public class Position 
{ 
    public string EmployeeName { get; set; } 
    public ContactInfo EmployeeContactInfo { get; set; } 
} 

chciałbym wskazać, że nazwa wyświetlana dla właściwości EmployeeName jest „Nazwa pracownika” oraz nazwę wyświetlaną własnością EmployeeContactInfo jest " Informacje kontaktowe pracownika ".

Wystarczy napisać własną klasę atrybutu, który pozwala mi na to proste:

[PropertyDisplayInfo(DisplayName = "Employee Name")] 
public string EmployeeName { get; set; } 

Ale jest coś takiego już zawarte w .NET?

Odpowiedz

13
+11

jak .NET 4, istnieje lepszy atrybut dla tego System.ComponentModel.DataAnnotations.DisplayAttribute –

+5

Dla dobra innych ludzi, patrząc na to odpowiedź, System.ComponentModel.DataAnnotations.DisplayAttribute nie jest obsługiwana przez formanty Windows Forms DataGridView lub PropertyGrid w .NET 4.0, więc powracasz do korzystania z System.ComponentModel.DisplayNameAttribute (i pisania własnej klasy pochodnej, jeśli chcesz wspierać lokalizację). – MCattle

11

System.ComponentModel.DataAnnotations.DisplayAttribute jest lepszym wyborem niż DisplayNameAttribute, która jest faktycznie przeznaczony do stosowania w sieciach elektrycznych własności. W dzisiejszych czasach więcej komponentów w świecie .NET odbiera i używa DisplayAttribute. Ma również takie udogodnienia, jak: Order, GroupName, ShortName i czy wyświetlać właściwość w ogóle, gdy automatyczne generowanie jest wykonywane (z AutoGenerateField).

DisplayAttribute jest również przyjazny dla zasobów, dzięki czemu jest dobrym wyborem do lokalizacji.

0

Umieść następujący atrybut przed każdym deklaracja własności:

//[DisplayName("Your desired human readable field caption ")] 
    [DisplayName("ID")] 
    public int id { 
     get {return _id;} 
     set { SetField(ref _id, value, "id"); } 
    } 
Powiązane problemy