Windows Phone 72010. 6. 23. 17:26

아 몸이 아프다… 이놈의 편도선 하지만 써놔야하지.. 이거 알고 보면 쉽고 예전에 내가 wpf할떄도 해서 포스팅해놨었는데

왜 어렵게 생각하고 있었는지 모르겠다.

 

일단 내가 할려고 하던것은 View에서 어떠한 이벤트가 일어나면(SelectChanged 이벤트가 일어남)

그 View에 있는 ListBox에 하나씩하나씩 추가하는것이 목표였다.

이걸 mvvm패턴을 안쓰면 무지 쉽다.. 그냥 behind코드에서 쓱싹하면 되니깐 누워서 떡먹기?

 

하지만 mvmm 무섭다~ ㅋㅋ 일단 selectchange event가 일어나면

Command패턴으로 View에서 변경된 값을 ModelView쪽에서 가지고 있는다.

하지만 다시 View에게 이 변경된값을 전달하는것은 쉽지 않다.. view가 static이 아닌이상…

 

그래서 생각해낸방법 ObservableCollection을 이용하는법이다.

가장쉬운 string을 예제로 들어보자…

ObservableCollection<string> tempList = new ObservableCollection<string>();
public ObservableCollection<string> ListboxSource
{
get
{
tempList.Add("hi 1");
tempList.Add("hi 2");
tempList.Add("hi 3");
return tempList;
}
}





일단 listbox xaml에는




<ListBox x:Name="xListBox" ItemsSource="{Binding ListboxSource}"/>



이렇게 바인딩이 되어있으므로 실행하면 ListBox에 hi 1,2,3값이 출력된다.


자 여기서 4를 추가해보자….. 물론 itemSource를 안건드리고 어떤 특정한 값이 변경될때마다 혹은 SelectChanged 이벤트가 발생하여 ListBox에 add를 해야할때


 


tempList.Add("lee jaedong");


 


그냥 이렇게 쓰면 바인딩 되어 ui에 4가 추가된다.


 


끝 아~ 지금 너무 피곤해서 여기까지 써야겠다..

Posted by 동동(이재동)