ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 커스텀 데이터 원본 DataBinding
    dev/.NET 2009. 9. 23. 09:23

    커스텀 데이터 원본이라고 하면 데이터 집합을 제외한 대부분을 지칭.

    값타입이나 여러 클래스 인스턴스등등.

    커스텀 항목 데이터 원본을 만들기 위해서는 하나 이상의 공용 속성을 제공.

    class NameAndNum
    {
      public string Name { get; set; }
      public int Num { get; set; }
    }

    이후 데이터 바인딩을 지정하면 됨.

    NameAndNum source = new NameAndNum();
    textbox1.DataBindings.Add("Text", source, "Name");
    textbox2.DataBindings.Add("Text", source, "Num");

    이렇게 한 후 바인딩된 컨트롤의 값을 변경하면 원본에 값은 반영이 된다.
    하지만 반대(원본 소스를 변경)의 경우엔 그 결과가 바인딩된 컨트롤에 바로 반영되지 않도록 기본 설정되어 있다.
    이러한 처리를 하려면 이벤트를 등록해주어야 한다.

    이때 필요한것은 이벤트
    public event EventHandler <propertyName>Changed;

    위의 예제를 수정하면,

    class NameAndNum
    {
      private string name;
      public event EventHandler NameChanged;
      public string Name
      {
        get { return name; }
        set
        {
          name = value;
          if(NameChanged != null) NameChanged(this, EventArgs.Empty);
        }
      public int Num {//위와 유사}
    }

    요정도로 가능하겠지.

    값이 설정될때 이벤트가 발생하도록 지정해주면 바인딩된 컨트롤은 소스 변경을 통보받고 변경된 값을 컨트롤에 보여주게 된다.

    출처-C# 을 이용한 윈도우 폼 프로그래밍

Designed by Tistory.