>

다른 비 시각적 컨트롤에 연결하여 현재 상태를 표시 할 수있는 뷰어 역할을하는 속성을 컨트롤에 만들고 싶습니다. 이 예에서는 시청자가온라인또는오프라인의 상태 만 표시한다고 가정 해 보겠습니다.

비 시각적 컨트롤을 삭제하고 싶습니다. 이것을 Heater 라고합시다   IHeater 유형의 양식에서 HeaterMonitor 를 삭제하십시오. . 나는 HeaterMonitor 의 속성에 가고 싶어  사용자 정의 Source  속성은 모든 IHeaters 의 목록을 참조하십시오  현재 양식에 있습니다.

인스턴스 선택 ( Heater1 Source 에서  재산은 HeaterMonitor1 를 구독 할 것입니다   Heater1 에 의해 생성 된 모든 상태 업데이트 .

템플릿으로 따를 수있는 기존 패턴이 있습니까?

차이가 생기면 .net 3.5 이상을 사용할 수 있습니다. 나는 data-binding 를 선택했다  태그로, 그러나 이것이 데이터베이스 질문이 아니기 때문에 정확하지 않습니다. 그러나 그것은 DataGridView 와 비슷해 보입니다.   DataSource 를 선택  속성.

편집 # 1 : 지금까지의 의견을 바탕으로 나는 내가 얻으려고하는 것을 충분히 강조하지 않았다고 생각합니다. 속성 편집기가 적합한 IHeater 를 나열하기를 원합니다  양식 컨트롤. 정규 IHeater 를 만드는 데 문제가 없습니다.  런타임에 할당 할 수있는 속성입니다.


  • 답변 # 1

    디자이너에서 디자인 타임에 사용할 수있는 비 UI 요소를 갖기 위해 Component 에서 상속 할 수 있습니다. .

    using System.ComponentModel;
    public interface IHeater
    {
        int Temperature { get; set; }
    }
    public class Heater : Component, IHeater
    {
        public int Temperature 
        {
            get;
            set;
        }
    }
    public class HeaterMonitor:Component
    {
        public IHeater Source { get; set; }
    }
    
    

    그런 다음 디자인 모드 (컴포넌트 트레이)에서 사용할 수 있습니다 :

    이 방법으로 소스를 선택하십시오 :

관련 자료

  • 이전 r - 숫자 형 벡터가있는 Levenshtein 유형 알고리즘
  • 다음 android - 기본 레이아웃의 여백/여백을 제거하는 방법