我有以下代码构成HubSection
内的Hub
。
<HubSection DataContext="{Binding Path=[0], Source={StaticResource groupedItemsViewSource}}" Padding="40,30,40,0">
<HubSection.Background>
<ImageBrush ImageSource="Images/BG.jpg" Stretch="UniformToFill" />
</HubSection.Background>
<HubSection.Header>
<TextBlock x:Uid="Section1Header" TextLineBounds="TrimToBaseline" OpticalMarginAlignment="TrimSideBearings" Text="English"/>
</HubSection.Header>
<DataTemplate>
<GridView
x:Name="itemGridView1"
Margin="-4,-4,0,0"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Items In Group"
ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource Standard240x320ItemTemplate}"
SelectionMode="Single"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick">
</GridView>
</DataTemplate>
</HubSection>
我也设置了AppBar,但我不知道如何告诉AppBar在HubSection中选择了什么。
请告知。
编辑:为了澄清,我面临着实施itemGridView1.selectedItem
等代码的问题,因为我被告知它“在当前上下文中不存在”。
答案 0 :(得分:2)
关于此问题的大多数建议都集中在迭代框架的可视化树,但这似乎在XAML Hub部分中不能很好地工作。
相反,在GridView中实现SelectionChanged事件。当触发此操作时,它将发送GridView发送方的详细信息,然后可以引用它以获取其他信息,例如.SelectedItem。
private void GridViewName_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var GridState = sender as GridView;
if(GridState.SelectedItems.Count>0)
{
// Do something
}
}