如何使用列表框中的数据设置页面导航?

时间:2013-04-04 05:02:32

标签: linq windows-phone-7 c#-4.0 linq-to-xml

您正在使用下面给出的xaml文件。我从列表框中列出了项目源列表。我想要将选定数据的页面导航到其他页面。

<ListBox x:Name="NotchsList11"  Grid.ColumnSpan="2"
       Margin="0,0,0,0" Grid.Row="3" HorizontalAlignment="left" Width="720"  Grid.RowSpan="2">
    <ListBox.ItemTemplate>
        <DataTemplate>
              <StackPanel Margin="0,0,0,0"  Grid.ColumnSpan="3" x:Name="ControlsPanel"
                    Grid.Column="0"
                    Height="215"
                    VerticalAlignment="Top">
                    <StackPanel Background="#eb2427" Orientation="Horizontal">
                        <TextBlock Grid.Row="1"  FontFamily="Calibri" FontSize="34" FontWeight="Bold"  FontStyle="Normal" Margin="10,0,0,0"
                            Text="{Binding name}"
                               />               
                    </StackPanel>
                    <StackPanel VerticalAlignment="Top" Width="Auto">
                          <ListBox ItemsSource="{Binding Images}" SelectionChanged="NotchsList11_SelectionChanged"></ListBox>
               </StackPanel>
             </StackPanel>
        </ScrollViewer>         
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox> 

我的xaml.cs代码

private void NotchsList11_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   Notch selectedItemData  = NotchsList11.SelectedItem as Notch;
    if (selectedItemData != null)
    {
        NavigationService.Navigate(new Uri(string.Format("/Test.xaml?parameter={0}",selectedItemData.articleid), UriKind.Relative));
    }
}

我尝试了这段代码,但选择的项目数据得到null.am在这个问题上挣扎了很长时间,所以请任何人给我解决方案。

1 个答案:

答案 0 :(得分:0)

在您的代码中,SelectionChanged =“NotchsList11_SelectionChanged”出现在Images列表中而不是NotchsList11 List中。请参阅修改后的代码:

<ListBox x:Name="NotchsList11"  Grid.ColumnSpan="2"  SelectionChanged="NotchsList11_SelectionChanged"
   Margin="0,0,0,0" Grid.Row="3" HorizontalAlignment="left" Width="720"  Grid.RowSpan="2">
<ListBox.ItemTemplate>
    <DataTemplate>
          <StackPanel Margin="0,0,0,0"  Grid.ColumnSpan="3" x:Name="ControlsPanel"
                Grid.Column="0"
                Height="215"
                VerticalAlignment="Top">
                <StackPanel Background="#eb2427" Orientation="Horizontal">
                    <TextBlock Grid.Row="1"  FontFamily="Calibri" FontSize="34" FontWeight="Bold"  FontStyle="Normal" Margin="10,0,0,0"
                        Text="{Binding name}"
                           />               
                </StackPanel>
                <StackPanel VerticalAlignment="Top" Width="Auto">
                      <ListBox ItemsSource="{Binding Images}" IsHitTestVisible="False"/>
           </StackPanel>
         </StackPanel>
    </ScrollViewer>         
  </StackPanel>
</DataTemplate>