2012-05-18 64 views
0

我以前有過這樣的代碼,但是由於我試圖讓其他東西修復,所以不知何故將它刪除了。傳遞一個綁定列表的值

所以我有一個列表綁定爲視圖模型,並且列表上有三行。

我希望能夠點擊列表,獲取另一頁上的第三行的值,並使用該值。

下面是列表的選擇代碼

private void List_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 

     // If selected index is -1 (no selection) do nothing 
     if (List.SelectedIndex == -1) 
      return; 

     // Navigate to the new page 
     NavigationService.Navigate(new Uri("/Route.xaml?selectedItem=" + List.SelectedIndex, UriKind.Relative)); 

     string urlWIthData = string.Format("/Route.xaml?name={0}", " "); 
     this.NavigationService.Navigate(new Uri(urlWIthData, UriKind.Relative)); 
     // Reset selected index to -1 (no selection) 
     List.SelectedIndex = -1; 
} 

然後,路線頁面上我希望能夠得到的價值和利用價值線三條....

我該怎麼做呢?

編輯:

所以列表的這一部分:

this.Items.Add(new ItemViewModel() { LineOne = "Images/1.png", LineTwo = "Whitehawk - County 
Hospital - City Centre - Hove - Portslade - Mile Oak", LineThree = "1 Whitehawk - Mile Oak", 
LineFour = "1 Mile Oak - Whitehawk", LineFive = "1149" }); 

我顯示一個頁面的列表:

<ListBox Margin="6,6,7,6" ItemsSource="{Binding Items}" Name="List" OpacityMask="#FFD38648" FontSize="26" SelectionChanged="List_SelectionChanged"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal" Margin="0,0,0,17" DataContext="{Binding}"> 
         <Image Name="Images" Source="{Binding LineOne}"> 
         </Image> 
         <TextBlock Text="{Binding LineTwo}" Style="{StaticResource PhoneTextSubtleStyle}" Name="textblock3"></TextBlock> 
              </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
+0

我不明白你在問什麼。第三項是特定的,還是僅僅是一個例子,如果你點擊第三項,那麼你想發送到下一頁? – Robaticus

+0

嗨,是的。這是一個路由列表,第一個項目是圖像,第二個描述,第三個是一個代碼,用於獲取另一個列表。 所以目前項目一和二顯示在第一頁上。 Wehrn用戶點擊它,它會轉到另一個頁面(如上面的代碼所示),但我想要找到並獲得第三行。將在上面添加更多信息 –

回答

0

,就可以把列表的的SelectedItem鍵入項目和從那裏獲得價值:

private void List_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
     // If selected index is -1 (no selection) do nothing 
     if (List.SelectedIndex == -1) 
      return; 

     // Here's the codes ----------------------- 

     var item = Items.SelectedItem as Item; 
     if(item == null) //cast didn't work 
      return; 

     var lineThree = item.LIneThree; 

     // end of the codes ----------------------- 

     // Navigate to the new page 
     NavigationService.Navigate(new Uri("/Route.xaml?selectedItem=" + List.SelectedIndex, UriKind.Relative)); 

     string urlWIthData = string.Format("/Route.xaml?name={0}", " "); 
     this.NavigationService.Navigate(new Uri(urlWIthData, UriKind.Relative)); 
     // Reset selected index to -1 (no selection) 
     List.SelectedIndex = -1; 
}