ExtendedLibrary for WPF/Silverlight
表示名をカスタマイズする
PropertyGrid > タスク別ヘルプ > 表示名をカスタマイズする

デフォルトでは、各プロパティの横に表示されるラベルには、プロパティ名が表示されます。多くの場合はこれで十分ですが、よりわかりやすい名前にするために、表示名をカスタマイズすることもできます。最も簡単な方法は、カスタム属性でオブジェクトのプロパティを修飾することです。Display 属性の Name プロパティを設定します(Display 属性は、System.ComponentModel,DataAnnotations アセンブリの System.ComponentModel.DataAnnotations 名前空間で定義されています)。

たとえば、次のコードのように、クラスで Display 属性を定義し、Name プロパティの値を設定できます。

コードのコピー
Public Class Customer
Private _Name As String
    <Display(Name:="顧客名")> _ 
    Public Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal value As String)
            _Name = value
        End Set
    End Property
    Private _EMail As String
    <Display(Name:="E メールアドレス")> _ 
    Public Property EMail() As String
        Get
            Return _EMail
        End Get
        Set(ByVal value As String)
            _EMail = value
        End Set
    End Property
    Private _Address As String
    <Display(Name:="住所")> _ 
    Public Property Address() As String
        Get
            Return _Address
        End Get
        Set(ByVal value As String)
            _Address = value
        End Set
    End Property
    Private _CustomerSince As DateTime
    <Display(Name:="取引開始日")> _ 
    Public Property CustomerSince() As DateTime
        Get
            Return _CustomerSince
        End Get
        Set(ByVal value As DateTime)
            _CustomerSince = value
        End Set
    End Property
  Private _SendNewsletter As Boolean
    <Display(Name:="ニュース送付")> _ 
    Public Property SendNewsletter() As Boolean
        Get
            Return _SendNewsletter
        End Get
        Set(ByVal value As Boolean)
            _SendNewsletter = value
        End Set
    End Property
  Private _PointBalance As System.Nullable(Of Integer)
    <Display(Name:="均衡点")> _ 
    Public Property PointBalance() As System.Nullable(Of Integer)
        Get
            Return _PointBalance
        End Get
        Set(ByVal value As System.Nullable(Of Integer))
            _PointBalance = value
        End Set
    End Property
End Class
コードのコピー
public class Customer
{
  [Display(Name = "顧客名")]
  public string Name { get; set; }
  [Display(Name = "E メールアドレス")]
  public string EMail { get; set; }
  public string Address { get; set; }
  [Display(Name = "取引開始日")]
  public DateTime CustomerSince { get; set; }
  [Display(Name ="ニュース送付")]
  public bool SendNewsletter { get; set; }
  [Display(Name ="均衡点")]
  public int? PointBalance { get; set; }
}

C1PropertyGrid は、この追加情報を使用して、次のように顧客を表示します。

この方法には、C1PropertyGrid に表示されるクラスへのアクセス権が必要です。表示文字列を変更しようとしても、表示されているクラスを変更できない場合は、PropertyAttributes プロパティを使用して、C1PropertyGrid に表示する各プロパティについて明示的に情報を提供する必要があります。