2011-08-04 4 views
1

I 사용자가 선택한대로 속성 표 내에 표시하려는 많은 개체입니다. 각 개체 클래스 내에서 속성 설명을 설정할 수 있다는 것을 알고 있지만 같은 개체의 다른 인스턴스간에 설명이 다른 것을 요구합니다.PropertyGrid 내에서 개체 설명 표시

속성 표에서 어떤 속성을 선택했는지에 관계없이 런타임에 전체 개체에 대한 설명을 설정할 수있는 방법이 있습니까? 나는 다음과 같은 클래스

public class Person 
{ 
    public String Name { get; set; } 
    public String Age { get; set; } 

    public Person(String n, int a) 
    { 
     this.Name = n; 
     this.age = a; 
    } 

    public Person() 
    { 

    } 
} 

을했고 예를 들어

, 나는 다음과 같은 방식으로

Person Frank = new Person(Frank, 22); 

에서 Person 객체를 생성 등

같은 속성 그리드에서 해당 객체를 표시
propertyGrid1.SelectedObject = Frank; 

오히려 전체 개체에 대한 설명을 제공하는 기능을 원합니다. Person 클래스의 이름 및 연령 속성 특히 Frank 객체와 관련된 설명이 필요하기 때문에 어떤 유형의 객체가 선택되었는지뿐만 아니라 해당 객체의 특정 인스턴스를 기반으로이 설명을 설정할 수 있기를 바랍니다. 이것이 가능한가?

답변

1

PropertyGrid는 개체가 아닌 속성에 대한 설명 만 표시합니다. 즉, ICustomTypeDescriptor을 개체에 구현하고 GetProperties 메서드를 재정의 할 수 있습니다. 거기에 사용자 정의 DescriptionAttribute을 주입 할 수 있습니다.

이 인터페이스에 대한 더 긴 안내서는 herehere입니다.

+0

링크가 이제 msdn 잡지로 리디렉션됩니다. 업데이트하십시오. – Kira

0

올바른 대답은 CodeNaked입니다. PropertyGrid는 전체 인스턴스가 아니라 현재 선택된 속성에 대한 설명 만 표시하는 것이 좋습니다. 이점은 무엇입니까? 대상 인스턴스를 기반으로 메시지를 실제로 표시해야하는 경우 그리드의 위 또는 아래에 레이블을 만들면 어떻습니까? 그 내용은 자신의 사용자 정의 속성이나 자신의 DescriptionProvider를 기반으로 할 수 있습니다 ...