아 몸이 아프다… 이놈의 편도선 하지만 써놔야하지.. 이거 알고 보면 쉽고 예전에 내가 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가 추가된다.
끝 아~ 지금 너무 피곤해서 여기까지 써야겠다..
'Windows Phone 7' 카테고리의 다른 글
[wp7] CommandPattern DataList의 Item Templete 안의 Button 이벤트 빼기 (0) | 2010.06.29 |
---|---|
[wp7] StartWith의 편리함 String내에서 자동완성 기능 할때 좋음. (0) | 2010.06.28 |
[WP7] List 내용값 정렬하기(Custrom List Sorting) (0) | 2010.06.16 |
[wp7] XmlSerializer 를 이용하여 xml 데이터를 만들어보자 (0) | 2010.06.15 |
[wp7] CommandPatton 쓰기 (0) | 2010.06.15 |