앱을 만들다보면 페이지간의 이동이 필요한 경우가 무척이나 많다.
그럼 어떻게 해서 데이터 전송을 할까?
여러가지 방법이 있는데 헷갈려 하는 사람들이 많아서 정리해보자.
1. Global Variable을 이용하는 방법
이건 쉽고 편리하긴하다.
App.xaml에
public string SecondPageText { get; set; }
이런식으로 정의 하고
(App.Current as App).SecondPageText = txtBox.Text;
이렇게 값을 넣을수 있다.
이렇게 하거나 아니면 Static Class를 만들어서 관리하는 방법도 있다.
2. Query String을 이용하는 방법
이건 예전에도 포스팅했고 가장 일반적인 방법임으로 패스
그냥 Navigate할때 쿼리처럼 쓰면 된다. web같이
3. PhoneApplicationSerivce States를 이용하는 방법
PhoneApplicationService.Current.State["Text"] = txtBox.Text;
txtBlock.Text = (string)PhoneApplicationService.Current.State["Text"];
머 이렇게 하는법이다. 주로 tombstone할때 사용하던 방식이다.
4. NextPage intance를 이용하는 방법
OnNavigateFrom할때 미리 가는 페이지의 instace를 받아서 보내는방법
viewModel에 직접 전달해줄수도 있어서 유용할수도 있다.
아마 사람들이 잘 모르는 방법일 것이다.
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.Content is PageOne)
{
(e.Content as PageOne).txtBlock.Text = txtBox.Text;
}
}
윈폰7을 공부하는 사람들이 가장 궁금해 할 수 있는 부분일꺼 같아서 공유해 본다.
'Windows Phone 7' 카테고리의 다른 글
[wp7] List의 선택한 값의 Index값을 알고 싶을때 IndexWhere (0) | 2012.01.30 |
---|---|
[wp7] Linq에서 StackPanel 의 Children에 있는 Item 비교하기 (Casting) (0) | 2012.01.30 |
[wp7] Model Class의 Properties 를 얻어와서 소스 최적화 및 코드를 줄여보자. (0) | 2012.01.19 |
[wp7] ListBox 바인딩 했을 때 안에 CheckBox 체크 (0) | 2012.01.18 |
[wp7] Isolatedstorage와 블랜드 충돌 해결법 (unable to determine application identity of the caller) (0) | 2012.01.09 |