PropertyGrid 용 TypedEscriptor를 사용하여 속성 수준 속성을 동적으로 추가하십시오

StackOverflow https://stackoverflow.com/questions/1300324

문제

그리드에 표시하는 동안 속성 (Browsable (False)과 같은)을 동적으로 추가하고 싶습니다. 시나리오는 공개 속성이있는 사용자 정의 클래스가 있다는 것입니다. 그러나 모든 공개 속성이 UI에 표시되기를 원하지 않습니다. 탈출구가 있습니까?

TypEdescriptor를 사용해 보았습니다. 그러나 속성 수준이 아닌 유형 수준에서만 작동합니다. 재산 수준에서 사용하는 방법에 대한 도움을 찾을 수 없었습니다.

모든 포인터는 높이 평가 될 것입니다.

도움이 되었습니까?

해결책

실제로 가능하지만, 나는 그것이 다소 모호하고 문서화되지 않았다는 것을 인정해야합니다. 핵심은 System.componentModel.typedescriptionProvider에서 자신의 Custom TypedescriptorProvider를 도출하는 것입니다. 그런 다음 자신의 타이핑 자손을 반환 할 수 있습니다.

ASP.NET MVC의 ViewModels 및 Metadata에 관한 다소 불쾌한 한계를 해결하기 위해이 작업을 수행했지만 자신의 추가 메타 데이터를 삽입하는 데 사용할 수도 있습니다.

다른 팁

나는 지난 며칠 동안 같은 지역에서 일해 왔습니다. 간단히 말해서, 나는 이것이 불가능하다는 결론에 도달했다.

"UI"코드를 사용자 정의 클래스와 혼합하고 싶지 않기 때문에 런타임에 속성을 적용하려는 이유는 무엇입니까?

이 경우 BrowsableAttribute ComponentModel의 구성원입니다 (http://msdn.microsoft.com/en-us/library/system.componentmodel.aspx) 및 winforms와 같은 의미로 UI와 관련이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top