본문 바로가기
C#

INotifyPropertyChanged 인터페이스를 이용하여 프로퍼티가 변경될때 이벤트를 발생시키는 간단한 예제.

by Hwoarang757 2013. 2. 5.

예제를 Windows Form Application으로 만들고 클래스 파일 ( EventClass.cs 이름이 참 -_-;; 죄송합니다 너무 대충 ) , 폼에 버튼을 하나 생성하였다.

 

Property의 값이 변경될때. 이벤트를 발생시키는데 초보라 아직까지 이해를 제대로 못하고 있습니다. -_-;;

 

EventClass.cs 의 내용입니다.

----------------------------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ComponentModel;

namespace EventClass

{

    class EventClass : INotifyPropertyChanged

    {  

        public event PropertyChangedEventHandler PropertyChanged; 

        private void NotifyPropertyChanged(String info)

        {

            if (PropertyChanged != null)

            {

                PropertyChanged(null, new PropertyChangedEventArgs(info));

            }

        }

        private string companyName;

        public string CompanyName

        {

            get

            {

                return companyName;

            }

            set

            {

                companyName = value;

                NotifyPropertyChanged(CompanyName);

            }

        }

    }

}

----------------------------------------------------------------------------------------------------

form.cs의 내용입니다 -_-;;

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace Event

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        EventClass eventClass = new EventClass();

        private void Form1_Load(object sender, EventArgs e)

        {

            eventClass.PropertyChanged += new PropertyChangedEventHandler(eventClass_PropertyChanged);

        }

        void eventClass_PropertyChanged(object sender, PropertyChangedEventArgs e)

        {

            if (e.PropertyName == "테스트")

            {

                MessageBox.Show("프로퍼티의 값이 테스트일때만 메세지박스 호출하기");

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            eventClass.CompanyName = "테스트";              

        }

    }

}

 

 

예제도 너무 허접하지만 의도대로 제대로 한것인지 -_-;; 죄송합니다 ...

요약을 해보면 버튼 클릭시 eventClass의 CompanyName프로퍼티의 값을 저장한다.

프로퍼티로 값이 저장될때  CompanyName으로 전달된 value가 "테스트" 일 경우 메세지 박스 호출