2010-08-26 17 views
10

Sınıfta bir özellik için kullanıcı dostu bir ad belirtmenize izin veren bir özellik var mı? EmployeeContactInfo özelliği "olduğu içinBir özelliğin "görünen adı" belirtmek için bir .NET özniteliği var mı?

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

Ben EmployeeName özellik için görünen adı "Çalışan Adı" olduğunu belirtmek istiyorum ve görünen ad: Örneğin

, ben şu sınıf var demek Çalışan İletişim Bilgileri ".

Yeterince bana bunu sağlayan kendi nitelik sınıfı yazmak kolay:

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

Ama zaten NET'te bulunan böyle bir şeydir?

cevap

13
+11

.NET 4'ün olarak, bu arayan diğer insanların yararına bunun için daha iyi bir özellik, System.ComponentModel.DataAnnotations.DisplayAttribute –

+5

var Yanıt, System.ComponentModel.DataAnnotations.DisplayAttribute, .NET 4.0'daki Windows Forms DataGridView veya PropertyGrid denetimleri tarafından desteklenmez, bu nedenle System.ComponentModel.DisplayNameAttribute (ve yerelleştirmeyi desteklemek istiyorsanız, kendi türetilmiş sınıfınızı yazarak) geri dönersiniz). – MCattle

11

System.ComponentModel.DataAnnotations.DisplayAttribute aslında mülkiyet ızgaraları kullanılmak üzere tasarlanmıştır DisplayNameAttribute daha iyi bir seçimdir yoktur. Günümüzde .NET dünyasındaki daha fazla bileşen, DisplayAttribute'u kullanacak ve kullanacaktır. Ayrıca,, GroupName, ShortName gibi nişler ve otomatik üretimi tamamlandığında (AutoGenerateField ile) özelliği görüntülemeyi isteyip istemediğinizi de gösterir. Ayrıca, kaynak kullanımı için uygun bir seçimdir ve bu da yerelleştirme için iyi bir seçenek olmasını sağlar.

0

Yeri her özellik bildirimi önce aşağıdaki özellik:

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