2009-09-17 5 views
17

나는 이것에 의해 난처한 것에 대한 바보처럼 느껴진다. 나는 답이 분명해야한다는 느낌이 든다. 하지만, 아쉽게도, 너무 많은 시간을 들여 Object Browser와 인터넷 검색을 통해 도움을 요청했습니다.PropertyGrid - 사용자 지정 속성 이름?

PropertyGrid에서 사용하는 클래스가 있습니다. 각 속성에 대해 CategoryAttribute를 설정하면 각 항목에 대해 새로운 범주가 생성된다는 것을 알았습니다. 이것은 내 속성 표에 내 사용자 정의 이름이있는 각 항목에 대한 [+] 표시를 설정하며 이는 달성하려는 동작이 아닙니다.

Visual Studio에서 솔루션 탐색기에서 항목, 예를 들어 어셈블리를 클릭하면 트리 노드가 0이고 완벽하게 명명 된 속성 목록 만 표시됩니다. 즉, 모든 문자열이 속성을 식별 할 수 있습니다. 객체의 이름. 그래서 그 대신이 갖는 :

[+ 파일 경로]
        파일 경로를 | propertyValue
[+ 파일 크기]
        FileSize | 0킬로바이트

나는이 찾고 있어요 :

[+ 파일]
        파일 경로 | 값
        파일 크기 | 0 KB

초기 [+] 노드가없는 경우에도 위의 내용을 참조하십시오. 적용 가능한 속성을 찾고있는 System.ComponentModel 네임 스페이스를 통해 부었지만 찾을 수 없습니다.

어떻게이 효과를 얻을 수 있습니까? 가능한 것이어야합니다. Visual Studio에서는 Visual Studio를 사용하기 때문에 파생 된 확장 된 구성 요소가 아닌 동일한 구성 요소라고 생각합니다.

감사합니다. -Eric

답변

38

사용 DisplayNameAttribute

using System.ComponentModel; 

[Category("Test")] 
[DisplayName("Test Property")] 
[Description("This is the description that shows up")] 
public string TestProperty {get;set;} 
+3

설명 속성을 사용하여 사용자에게 더 긴 설명을 제공 할 수도 있습니다. – JDunkerley

+0

감사합니다. :) 생명의 은인. +1 –

9

당신은 CategoryAttribute 설정을 할 수 있습니다 BOTH 속성에 대해 "파일"로 :

[Category("File")] 
public string FilePath { get; set;} 

[Category("File")] 
public int FileSize { get; set;} 

나는 "Getting the most out of the .NET Property Grid Control"당신은 추가 설명을, 당신의 재산을 정리 포함에 사용할 수있는 다른 아이디어를 읽어 보시기 바랍니다 .

+1

..의 DescriptionAttribute이 속성에 도움말 텍스트를 추가합니다 (이 읽을 수있는 더 인간 만들기) 어떤 텍스트를 표시 변경하고 그룹에 CategoryAttribute 등록하려면 비트를 그리워했다 표시 이름에 관한 내용 (추가하려는 경우 답장의 샘플) –

+1

그래,이 방법을 사용하면 트리 하나에 넣을 수 있지만 선택한 답변의 DisplayName 특성이 필요합니다. 그래도 고마워! : D –