속성 표를 사용하여 이름/값 쌍을 편집하는 응용 프로그램에서 작업하고 있습니다. 내 클래스 파일의 일부 속성은 ListDictionary 컬렉션입니다. 런타임에 콜렉션 편집기를 작동하게 할 속성 선언에 적용 할 수있는 편집기 속성이 있습니까? 그렇지 않은 경우 ComponentModel.Design.CollectionEditor에서 상속하여 런타임에 사용할 수 있습니까? 추가 할 수 있어야합니다. 컬렉션 값을 삭제하고 편집하십시오. 덕분에 많이, 테리런타임시 컬렉션 편집기
답변
나는이 문서가 당신이 필요로하는 것을 설명한다고 생각 : How to Edit and Persist Collections with CollectionEditor
CodeProject의 기사에서 [http://www.codeproject.com/KB/cs/dzcollectioneditor.aspx][1]
는 컬렉션이 될하기 위해 충족해야합니다 세 가지 요구 사항이 있습니다 은 (는) 컬렉션과 함께 유지되었습니다. 편집자 :
- 먼저 컬렉션에 IList 인터페이스 ( 에서 상속하는 경우 System.Collections.CollectionBase는 대부분의 경우 가장 좋은 옵션 인 )을 구현해야합니다.
두 번째로 인덱서 (VB.NET의 항목) 속성이 있어야합니다. 유형 인 CollectionEditor는 이 컬렉션에 추가 할 인스턴스의 기본 유형을 결정하기 위해이 속성을 사용합니다. .
보호 가상 유형 GetItemType (IList에의 콜) { PropertyInfo 파이 = coll.GetType() GetProperty를 : 더 나은이 작동 방식을 이해하려면
는 GetItemType()는 CustomCollectionEditorForm의 기능을 살펴 ("Item", 새로운 유형 [] {typeof (int)});
셋째} pi.PropertyType 을 반환 , 컬렉션 클래스는 다음 방법 중 하나 또는 둘 모두를 구현해야합니다 추가 AddRange. 은 IList 인터페이스가 추가 회원을 가지고 있으며, CollectionBase에은 IList를 구현하지만 CollectionBase에 IList의의 추가 부재의 명시 적 멤버 구현을 선언, 당신은 여전히 주어진 컬렉션에 대한 추가 방법 를 구현해야합니다. 디자이너가 구현 한 메서드에 따라 컬렉션을 serialize합니다. 둘 모두를 구현 한 경우 AddRange는 이 좋습니다. 당신이 속성 그리드에 컬렉션을 구현하는 데 필요한 모든 것을 찾을 수 있습니다이 문서에서
- 1. Visual Studio 2010 디자인 타임 컬렉션 편집기
- 2. 컬렉션
- 3. Fck 편집기 다중 편집기
- 4. 컬렉션 내에서 일반 컬렉션 만들기
- 5. 컬렉션 내 컬렉션 필터링 MVVM
- 6. LINQ (컬렉션 내의 컬렉션)로 코드 단순화
- 7. 일부 컬렉션
- 8. 자바 컬렉션
- 9. 내보내기 컬렉션
- 10. 컬렉션 도움말
- 11. 컬렉션 매핑
- 12. 컬렉션 및지도
- 13. 아음속 컬렉션
- 14. 필터 컬렉션
- 15. 컬렉션 모음
- 16. 삽입이 컬렉션
- 17. 컬렉션 동시에
- 18. DataGrid를 컬렉션
- 19. IIS 관리자 확장 성 - 컬렉션 편집
- 20. Android ADT Eclipse 플러그인에서 레이아웃 편집기 스크롤
- 21. App.config/web.config 편집기 간편한 구성 편집기
- 22. 컨트롤 컬렉션에 대한 디자인 타임 편집기 지원
- 23. wysiwyg 편집기
- 24. 소켓 편집기?
- 25. 플래시 편집기
- 26. RTF 편집기
- 27. 경량 편집기
- 28. 디자인보기가있는 편집기?
- 29. 런타임시 현재 패키지를 런타임시 문자열로 가져 오는 방법
- 30. 런타임시 셀 데이터 유형 설정 런타임시 셀 데이터 삭제