2010-08-02 2 views
0

나는 이것을 할 올바른 방법을 찾으려고 노력하고있다.데이터 클래스에서 시각적 특성을 분리 하시겠습니까?

컨트롤 중 하나로 PropertyGrid를 사용하는 WinForms 앱이 있습니다. .SelectedObject 속성을 사용하여 특성을 표시 할 적절한 개체를 할당하고 있습니다.

PropertyGrid는이 객체의 클래스 속성에 대해 선언 된 속성을 사용하여 시각적 인 사항을 결정합니다. 항목이 표시되는 경우 (Browsable), 속성에 대체 UI 렌더링이 필요한 경우 (예 : 드롭 다운 대 텍스트 상자).

예 :

[TypeConverter(typeof(MyTypeConverter))] 
    public string MyAttribute 
    { 
     ... 
    } 

    [Browsable(false)] 
    public string HiddenAttribute 
    { 
     ... 
    } 

그러나, 나는 강력하게 내 다른 불가지론 데이터 클래스의 UI로 연결되어 이러한 특성의 공동 연합을 좋아하지 않는다.

데이터 클래스를 생성하지 않고 PropertyGrid에 필요한 속성을 선언하는 가장 좋은 방법은 무엇입니까?

  1. 사용 부분 클래스를 별도의 파일

  2. 에 속성을 넣어 또는 속성

I에 대한 별도의 클래스를 만들 :

답변

0

내가 제안하는 두 가지 옵션이 있습니다 개인적으로 옵션 # 2를 선호하지만이를 완벽하게 구현하려면 속성 객체를 기본 객체와 연관시키는 메커니즘이 필요합니다. 이 작업을 수행하는 가장 일반적인 방법은 특성 개체를 반환 할 인터페이스를 정의하고 해당 인터페이스를 기본 개체 내에 구현하는 것입니다. 그런 다음 해당 인터페이스를 확인하고 구현 된 경우 특성 개체를 사용하도록 PropertyGrid에서 .SelectedObject 속성을 설정하는 코드를 수정합니다.

관련 문제