Windows Phone 72010.10.10 17:55

일단 내가  처리해야 할 문제는 그것이였다.

 

트위터에서 로그인이 Success가 됬는지 안됐는지 체크 하는거였는데 이게 타이머로 되어있어서(LG DLLㅠ.ㅠ)

 

그래서 Success 여부를 판단하여 UI 즉 VIew딴을 바꾸는것이였다.

 

일단 Twitter Manager 클래스가 있고 거기에서 성공하면 클래스를 호출한곳(즉 VIew딴) 에서 성공이 되었는지 안되었는지  아는 방법이다.

 

즉 아주 쉽게 말해서

 

A라는 Class 가 있고 그안에 Test라는 Bool형 변수가 있는데 이것이 변경이 될때 그때 이벤트가 발생하여 알려주는것이다.

 

일단 이벤트를 발생해야 하기 때문에 살펴보자 나는 bool을 이용하였지만 샘플은 string을 이용했다(똑같다)

 

이벤트 args를 만들자

 

MyEventArgs.cs

 
    public class MyEventArgs : EventArgs
    {
        private string msg;
 
        public MyEventArgs(string messageData)
        {
            msg = messageData;
        }
        public string Message
        {
            get
            {
                return msg;
            }
            set
            {
                msg = value;
            }
        }
    }

 

 

그리고 이 이벤트를 등록하는   쿨래스를 만들자.

 

HasEvent.cs

public class HasEvent
    {
        public event EventHandler<MyEventArgs> sampleEvent;
 
        public void DemoEvent(string val)
        {
            EventHandler<MyEventArgs> temp = sampleEvent;
            if (temp != null)
            {
                temp(this, new MyEventArgs(val));
            }
        }        
    }

 

이제 SampleEvent가 등록되었으니 일반 이벤트랑 똑같이 쓰면 된다~ 와우

 

이 이벤트를 사용하는 예제를 보자

 

MainPage.cs

 

public partial class MainPage : PhoneApplicationPage
   {
       // Constructor
       public MainPage()
       {
           InitializeComponent();
           HasEvent he = new HasEvent();
           he.sampleEvent += new EventHandler<MyEventArgs>(he_sampleEvent);
           he.DemoEvent("true");            
       }
 
       void he_sampleEvent(object sender, MyEventArgs e)
       {
           MessageBox.Show(e.Message);
       }
   }

 

이렇게 이벤트를 줘서 만약 내가 어떤 시기에 특정 메소드를 실행시키고 싶거나 변경하고 싶다면

 

이렇게 이용하면 된다.

 

참고  :  http://msdn.microsoft.com/ko-kr/library/db0etb8x.aspx

Posted by 동동(이재동)