2013-03-01 4 views
1

일반 propertygrid를 사용하여 여러 사용자 정의 클래스의 값을 편집하고 있습니다. 이러한 클래스 중 일부는 콜렉션을 가지고 있으며 콜렉션 에디터에서 문제없이 콜렉션을 열 수 있습니다. 컬렉션에 이미 개체가 포함되어 있으면 해당 개체를 선택하고 오른쪽에서 편집 할 수 있지만 추가/제거 단추는 비활성화됩니다.WinForm propertygrid Collection Editor 비활성 버튼 추가/제거

저는 이러한 컬렉션 중 일부는 사용자 지정 편집기가 필요하다는 것을 알고 있습니다. 그러나 매우 복잡한 데 그 중 대부분은 매우 간단합니다. 이 간단한 클래스에 대한 추가/제거 버튼을 쉽게 활성화 할 수 있습니까? 아니면 모든 컬렉션에 대한 사용자 정의 편집기를 만들어야합니까?

답변

1

추가 및 제거 버튼을 활성화하려면 비 일반 IList 인터페이스를 구현하는 컬렉션이 필요하며 분명히 ReadOnly 속성은 false을 반환해야합니다.

주 당신은 단지 자체가 (IList<Something>로 SUC)은 IList에서 파생되는 클래스 또는 인터페이스에서 것이다 하지 작업을 파생 클래스에 명시 적으로 구현이 필요합니다.

public class MyStuffCollection : List<MyStuff> 
{ 
} 

다음과 같은 괜찮 :

는 예를 들어, 다음은 확인되지

public class MyStuffCollection : List<MyStuff>, IList 
{ 
} 
+0

덕분에, 난 당신이 class'에'명시 적으로 구현이 무슨 뜻인지 확실하지 않다 - - 내 자신의 클래스를 빌드해야한다는 말하고 있습니까? 아니면 명시 적으로 구현 한 .NET 클래스가 있습니까? –

+0

클래스가 'IList'에서 직접 파생되어야 함을 의미합니다. 'IList'에서 파생 된 클래스 나 인터페이스로부터 파생되는 것만으로는 충분하지 않습니다. –

+0

IList에서 파생되어야하므로 SortedList 또는 Dictionary와 같은 것을 사용할 수 없다는 뜻입니까? –