2011-06-16 82 views
0

后面我要访问列表框的selectedItem属性我有包括列表框WP7 - 在列表框中访问选择项目时列表框是一个ItemTemplate

<controls:Pivot x:Name="MainPivot" ItemsSource="{Binding PivotItemHeaders}" Title="CLASS TIMETABLE" > 
     <controls:Pivot.HeaderTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Description}"/> 
      </DataTemplate> 
     </controls:Pivot.HeaderTemplate> 
     <controls:Pivot.ItemTemplate> 
      <DataTemplate> 
       <ListBox x:Name="Events" ItemsSource="{Binding allEventItems}" ItemTemplate="{StaticResource EventDisplay2}"/> 
      </DataTemplate> 
     </controls:Pivot.ItemTemplate> 
    </controls:Pivot> 

代码中的一个枢轴项模板内,但我不能'得到”到ListBox这样,因为两者均是(大概)模板

this.NavigationService.Navigate(new Uri("/View/EventEdit.xaml?selectedEvent=" + Events.SelectedItem, UriKind.Relative)); 

的活动列表框不被认可的范围内。

Assuminh我可以通过获取对象,并通过将它作为一个参数,我可以用什么代码来检索它

我知道它与 保护覆盖无效的OnNavigatedTo(NavigationEventArgs E)开始 { 如果( NavigationContext.QueryString.ContainsKey(“SelectedEvent”)){

但我不能确定的语法/代码从参数中提取出来的对象

欣赏我怎么能得到selecte dItem从这个列表框和代码打通

  • 感谢

回答

2

传递的对象,而不是试图访问列表框,您可以使用SelectionChanged事件被告知的值更改时:

<ListBox x:Name="Events" 
     ItemsSource="{Binding allEventItems}" 
     ItemTemplate="{StaticResource EventDisplay2}" 
     SelectionChanged="Event_SelectionChanged" /> 

然后在后面的代码:

private void Event_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    this.selectedEvent = (EventItem)e.AddedItems[0]; 
} 

您可以使用NavigationContext.QueryString["selectedEvent"]访问该值,但只能在导航查询字符串中存储字符串。如果您的列表框当前绑定到对象,则需要选择一个键,然后使用该键从第二页中查找该事件。

+0

好的 - 谢谢我不确定我是否可以传递对象。 – Peter 2011-06-16 06:25:45

+0

因此,您建议我捕获已选择的最新项目(通过SelectionChanged事件),然后在我想导航的时候,从此对象获取密钥并将其传递。 – Peter 2011-06-16 06:27:55

+0

这是正确的。 – 2011-06-16 09:23:48

相关问题