2012-06-13 1 views
0

Microsoft에서 만든 로컬 데이터베이스 예제를 사용하고 있습니다.SelectedItem은 항상 유효한 값으로 설정되어야합니다. Windows Phone 로컬 데이터베이스

목록에 항목을 추가하고 삭제할 수 있습니다. 하지만 이제 항목을 선택하고 항목의 텍스트를 가져 와서 다음 페이지에서 사용하려고합니다.

private void allToDoItemsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 

     NavigationService.Navigate(new Uri("/LiveTimes.xaml?selectedItem=" + allToDoItemsListBox.SelectedIndex, UriKind.Relative)); 

    // string urlWIthData = string.Format("/LiveTimes.xaml?name={0}", " "); 
    // this.NavigationService.Navigate(new Uri(urlWIthData, UriKind.Relative)); 

    } 

그런 다음이 다른 페이지의 페이지로드는 다음과 같습니다

이 선택 변경된 이벤트입니다.

string selectedIndex = ""; 
     if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex)) 
     { 
      int index = int.Parse(selectedIndex); 
      DataContext = App.ViewModel.HomeToDoItems[index]; 

     } 

내가 이것을 사용할 때 오류는 DataContext 줄에 있습니다.

해결책은 무엇입니까?

+0

DataContext Line에서 발생하는 오류는 무엇입니까? ViewModel의 App 클래스에 정적이 있습니까? – Alex

+0

오류는 SelectedItem이 항상 유효한 값으로 설정되어야합니다. 뷰 모델에서 정적이 무엇을 의미하는지 확신 할 수 없습니다. –

답변

1

위의 코드에는 문제가 없습니다. 실제 문제는 ViewModel 및 HomeToDoItems를 정의한 방법과 다를 수 있습니다. 이 코드 중 일부를 보여줄 수 있다면 문제를 해결하는 데 도움이됩니다.

데이터를 DataContext로 설정하기 전에 다음 단계를 수행하십시오. 먼저 유효한 selectedIndex를 가져 오는지 확인하십시오.

var tempData = App.ViewModel.HomeToDoItems[index]; 
DataContext = tempData; 

그런 다음 tempData에 중단 점을 삽입하여 예상되는 데이터를 가져 오는지 확인하십시오.

이 대답은 문제를 해결하지 못할 수도 있지만 실제 문제를 식별하는 데 도움이됩니다.

관련 문제