Windows Forms 데이터 바인딩은 ICustomTypeDescriptor
인터페이스를 인식하므로 개체가 데이터 바인딩에 대해 표시 할 속성을 런타임에 결정할 수 있습니다. 따라서 구현을 작성하면 Windows Forms에 어떤 속성이든 갖고 있다고 느끼고 구현 방법을 결정할 수 있습니다.
물론 도움이되지 않을 수도 있습니다. 속성을 추가하지 않으려면 상당히 복잡한 인터페이스를 구현하지 않는 것이 좋습니다. 분명한 해결책은 데이터 소스 역할을하는 유형의 작업을 작성하고 현재 바인딩중인 객체 대신 해당 작업에 바인드하는 것입니다.
물론 을으로 만들면 대신 해당 래퍼에 구현하려는 모든 속성을 구현하는 것이 더 쉽습니다.
일반적으로 데이터 바인딩을 사용하면 UI의 이점을 위해 모델에 항목을 추가 할 필요가 없으므로 일부 기본 모델에 직접 바인딩하지 않아도됩니다. 이것이 '분리 된 프리젠 테이션'이 인기있는 이유입니다. 모델과 뷰를 직접 연결하는 대신 중간에 중재 할 작업이 있습니다. 일부는이를 뷰 모델이라고 부르며 일부는 발표자라고 부릅니다. 그러나 기본 원칙은 항상 표현의 분리입니다.
프레젠테이션을 별도로 구현하는 것처럼 보이지만 추가 유형을 도입하지 않아도이 중간 계층이 어딘가에 있어야합니다. 왜 그 계층으로 동작 할 클래스 (또는 클래스 집합)를 정의하지 않는 것이 좋을까요?
완벽하게 작동합니다. 이 작업을 수행하기 위해 작은 라이브러리를 작성하는 것에 대해 생각하고 있었지만이 코드를 메소드에 넣는 것은 필요한 것입니다. 감사! –