2013-05-03 2 views
0

Panorama Windows Phone 8 앱을 만들고 있습니다. 실제로 앱에서 실제로 사용한 첫 번째 사례입니다.파노라마 컨트롤에서 데이터를 표시하지 않습니다.

런타임에 데이터를 표시하는 데 문제가 있습니다. 대신에 나는 단지 목록을보고 오전 :

RuntimeOne RuntimeTwo RuntimeThree 등

내가 무슨 일이 일어 났는지 단서를 필요는 없습니다, 그것은 다른 일했다. SampleData 폴더에 들어가 LineOne, LineTwo, LineThree 등을 변경하려고합니다.하지만 Windows Phone Emulator에 앱을 배포 할 때 아무 것도하지 않습니다.

+2

처음으로 스택 오버플로를 환영합니다. Windows phone과 같은 놀라운 플랫폼을위한 작업에 대한 두 번째 축하. 이제는 절차가 끝났으므로 질문을 게시 할 때 코드를 게시하십시오. 그렇지 않으면 정말로 devs가 여기에 있고 질문에 답할 수 있습니다. –

+0

또한 * 질문 * 게시시 "도움이된다면 감사 할 것"이라는 질문이 아닙니다. [당신이 가지고있는 코드] (http://www.sscce.org/)로 질문을 업데이트 할 때, 예를 들어 "어떻게 해결할 수 있습니까?" 또는 "바에서 foo로 데이터를 표시하려면 어떻게해야합니까?". 그렇게하면 다른 사람들은 추측하는 대신 원하는 것을 이해하는 데 훨씬 쉬운 시간을 갖게됩니다. – Patrick

+0

좋아요, 나는 당신이 타고있는 말을 타고 다음 번에 그 일을 할 것입니다.어떤 코드도 게시하지 않은 이유는 디자인 단계에서부터 그 앱을 만들 때입니다. 텍스트 문자열의 데이터가 어디로 이동했는지 이해하려고했습니다. 디자인보기에서는 Design One Design Two 등이 나와 있기 때문에 SampleData/MainViewModelSampleData.xaml 파일에서이를 변경하고 실행하면됩니다. 그것은 보여주지 않습니다, 그것은 단지 "RuntimeOne, RuntimeTwo, etc."라고 말합니다. scrollView! –

답변

1

두 개의 서로 다른 데이터 집합이 있고 런타임에 DataContext이 디자인 타임과 다른 경우가 발생합니다.

  1. 디자인 모드에 표시되는 데이터 ('디자인 한', '디자인이')가 그래서 그 런타임 환경에 영향을주지 않습니다 변화, MainViewModelSampleData.cs에 저장됩니다. 런타임에

  2. 데이터는 MainPage.xaml의 상단에 MainViewModel.cs

LoadData 방법에서 오는, 당신은

 d:DataContext="{d:DesignData SampleData/MainViewModelSampleData.xaml}" 

를 볼 수 있습니다 여기에 "D"네임 스페이스입니다 '디자인'에 대한 니모닉. 샘플 데이터 XAML 파일을 보면 이라는 클래스가 Items 컬렉션으로 선언되어 있습니다. 런타임 MainViewModel.cs (특히 LoadData 법)에서

MainViewModel 클래스 Items 속성에 의해 상품 하나를 추가하고, 그 클래스는 차례로 MainPage

생성자의 런타임 DataContext 설정된다

파노라마 컨트롤 자체는

  <phone:LongListSelector Margin="0,0,-22,0" ItemsSource="{Binding Items}"> 

같은 마크 업 그래서 어떤 현재 DataCo에 Items라는 컬렉션을 볼 것으로 예상 것있다 ntext는 사실이며, 두 개의 서로 다른 데이터 컨텍스트가 실제로 작동한다는 사실은 사용자가보고있는 것을 설명합니다.

데이터 바인딩 마법은 엄청나게 강력하고 강력하지만 때로는 머리를 긁적 거리게 만듭니다.

관련 문제