赢8应用程序获取从列表视图的DataTemplate
问题描述:
我想学习如何在列表视图的DataTemplate在我赢8应用文本赢8应用程序获取从列表视图的DataTemplate
我有下面的代码在我的XAML代码
<!-- Vertical scrolling item list -->
<ListView x:Name="itemListView"
Margin="0,4.714,10,0.429"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
SelectionChanged="itemListView_SelectionChanged" Loaded="itemListView_Loaded" Grid.Row="4" Tapped="itemListView_Tapped_1">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="110" Margin="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
<Image Source="{Binding Image}" Stretch="UniformToFill"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
<TextBlock Text="{Binding Title}" TextWrapping="NoWrap" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Subtitle}" TextWrapping="NoWrap"/>
<TextBlock Text="{Binding Description}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description2}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description3}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description4}" MaxHeight="60" FontFamily="Global User Interface"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这使6列表视图上每个项目的文本块
问题我有当我在列表视图中选择一个项目我使用轻击事件然后填充详细信息窗格,但我无法解决如何从选定的项目中获取6个项目
有人点我在正确的方向,请
任何帮助表示赞赏
马克
答
我会抽头事件设置为电网和经过XAML路径。事情是这样的:
XAML:
<ListView x:Name="itemListView"
Margin="0,4.714,10,0.429"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
SelectionChanged="itemListView_SelectionChanged" Loaded="itemListView_Loaded" Grid.Row="4" >
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="110" Margin="6" Tapped="listViewItem_Tapped">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
<Image Source="{Binding Image}" Stretch="UniformToFill"/>
</Border>
<StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
<TextBlock Text="{Binding Title}" TextWrapping="NoWrap" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Subtitle}" TextWrapping="NoWrap"/>
<TextBlock Text="{Binding Description}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description2}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description3}" MaxHeight="60" FontFamily="Global User Interface"/>
<TextBlock Text="{Binding Description4}" MaxHeight="60" FontFamily="Global User Interface"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和INT后面的代码,你可以这样做:
private async void listViewItem_Tapped(object sender, TappedRoutedEventArgs e)
{
Grid gridElement = (sender as Grid);
//Get the stackpanel
Stackpanel stackPanelWithElements = gridElement.Children.ElementAt(1) as Stackpanel;
//get the first TextBlock
TextBlock titleTextBlock = stackPanelWithElements.Children.ElementAt(0) as TextBlock;
//Get the text of the textblock
String title = titleTextBlock.Text;
//Get the next text
TextBlock subTitleTextBlock = stackPanelWithElements.Children.ElementAt(1) as TextBlock;
String subTitle = subTitleTextBlock.Text;
//get the other elements ...
}
感谢这个XAML进去不错,但我得到了窃听事件的错误说“的类型或Namplace名称”StackPanel“找不到” –
排序它Stackpanel被拼写错误很多谢谢 –