2012-04-25 2 views
2

는이 같은 ... 데이터 컨텍스트를 정의하는 윈도우 폰에 대한 DataBoundApp 템플릿을 사용하고, 그리고 템플릿에 selectedIndex의 값은 DetailsPage에 MainPage에서 전달됩니다항목 모음에서 특정 항목을 선택하는 방법은 무엇입니까?

// When page is navigated to set data context to selected item in list 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     string selectedIndex = ""; 
     if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex)) 
     { 
      int index = int.Parse(selectedIndex); 
      DataContext = App.ViewModel.Items[index]; 
     } 
    } 

이이 설정하는 유일한 방법입니다 데이터 컨텍스트 또는 특정 값을 가진 항목을 선택할 수 있습니다. 예를 들어, LineOne = "런타임 7"값을 갖는 항목에 데이터 컨텍스트를 설정하고 싶습니다. ...

어떻게 설정합니까?

편집 : 이들은

public void LoadData() 
    { 
     // Sample data; replace with real data 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime one", LineTwo = "Maecenas praesent accumsan bibendum", LineThree = "Facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime two", LineTwo = "Dictumst eleifend facilisi faucibus", LineThree = "Suscipit torquent ultrices vehicula volutpat maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime three", LineTwo = "Habitant inceptos interdum lobortis", LineThree = "Habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu suscipit torquent" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime four", LineTwo = "Nascetur pharetra placerat pulvinar", LineThree = "Ultrices vehicula volutpat maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime five", LineTwo = "Maecenas praesent accumsan bibendum", LineThree = "Maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos interdum lobortis nascetur" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime six", LineTwo = "Dictumst eleifend facilisi faucibus", LineThree = "Pharetra placerat pulvinar sagittis senectus sociosqu suscipit torquent ultrices vehicula volutpat maecenas praesent" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime seven", LineTwo = "Habitant inceptos interdum lobortis", LineThree = "Accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime eight", LineTwo = "Nascetur pharetra placerat pulvinar", LineThree = "Pulvinar sagittis senectus sociosqu suscipit torquent ultrices vehicula volutpat maecenas praesent accumsan bibendum" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime nine", LineTwo = "Maecenas praesent accumsan bibendum", LineThree = "Facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime ten", LineTwo = "Dictumst eleifend facilisi faucibus", LineThree = "Suscipit torquent ultrices vehicula volutpat maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime eleven", LineTwo = "Habitant inceptos interdum lobortis", LineThree = "Habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu suscipit torquent" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime twelve", LineTwo = "Nascetur pharetra placerat pulvinar", LineThree = "Ultrices vehicula volutpat maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime thirteen", LineTwo = "Maecenas praesent accumsan bibendum", LineThree = "Maecenas praesent accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos interdum lobortis nascetur" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime fourteen", LineTwo = "Dictumst eleifend facilisi faucibus", LineThree = "Pharetra placerat pulvinar sagittis senectus sociosqu suscipit torquent ultrices vehicula volutpat maecenas praesent" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime fifteen", LineTwo = "Habitant inceptos interdum lobortis", LineThree = "Accumsan bibendum dictumst eleifend facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat" }); 
     this.Items.Add(new ItemViewModel() { LineOne = "runtime sixteen", LineTwo = "Nascetur pharetra placerat pulvinar", LineThree = "Pulvinar sagittis senectus sociosqu suscipit torquent ultrices vehicula volutpat maecenas praesent accumsan bibendum" }); 

     this.IsDataLoaded = true; 
    } 

내가 항목의 인덱스 번호를 데이터 컨텍스트를 설정하지 않는 뷰 모델 항목이 있지만,

+0

배열 초기화라고하는 항목을 '항목 모음'이라고 표시하면 더 잘 쓸 수 있습니다. 그리고 코드 뒤에 나오는 질문은 제목과 같은 질문이 아닙니다. –

+0

내가 명확하지 않은 경우 미안 해요 - 특정 항목, 일명 LineOne = "런타임 일곱 가지"속성을 가진 특정 항목을 선택하고 싶습니다 ... –

+0

WP7에 익숙하지 않아 LineOne은 WP7에 익숙합니다. 또는 코드 예제에서 자세한 내용을 제공 할 수 있습니까? –

답변

1

만큼 특정 항목 값으로 당신이 줄 수있는 가치는 당신이 찾고있는 가치, 아래에 작동합니다.

string value = "runtime seven"; 

DataContext = App.ViewModel.Items.FirstOrDefault(item => item.LineOne == value); 
+0

예, 그게 내가 필요한 것입니다. 감사합니다! 이제 트릭을 할거야. –

관련 문제