我有一个全景系统会根据数据绑定表项的动态量。 在所创建的PanoramaItem,我有我想随时间修改影像(淡入/淡出不同随时间的图像)。
我看到这样类似的问题: 如何检索在运行一个全景,项目的名称? 但是,这并不为我工作,当我使用,我从来没有得到一个PanoramaItem Panorama.Items[index]
。 我只得到了数据的实例,结合我使用。
我来自Android的世界里,我可以简单的使用类似findViewById()
获取特定视图。 有什么在WP8相似? 我知道FindName()
但在我的全景使用简单地返回null ...
所以我的问题是:我如何获得命名的图像的参考GalleryPreview
在代码隐藏文件?
我的页面XAML
<phone:PhoneApplicationPage
x:Class="App.View.AppDetailsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="False" >
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="PanoramaHeaderTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="72"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding AppStoreIcon}"
Width="64" Height="64"
Grid.Column="0"
HorizontalAlignment="Left"/>
<TextBlock x:Name="ItemTitle"
Text="{Binding os}"
Grid.Column="1"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="PanormaItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding storeName}" FontSize="24"
Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"/>
<TextBlock Text="Rating" FontSize="24"
Grid.Row="1" Grid.Column="0"/>
<TextBlock Text="{Binding rating}" FontSize="24"
Grid.Row="1" Grid.Column="1"/>
<TextBlock Text="5 Stars: " FontSize="24"
Grid.Row="2" Grid.Column="0"/>
<TextBlock Text="{Binding starsFive}" FontSize="24"
Grid.Row="2" Grid.Column="1"/>
<TextBlock Text="4 Stars: " FontSize="24"
Grid.Row="3" Grid.Column="0"/>
<TextBlock Text="{Binding starsFour}" FontSize="24"
Grid.Row="3" Grid.Column="1"/>
<TextBlock Text="3 Stars: " FontSize="24"
Grid.Row="4" Grid.Column="0"/>
<TextBlock Text="{Binding starsThree}" FontSize="24"
Grid.Row="4" Grid.Column="1"/>
<TextBlock Text="2 Stars: " FontSize="24"
Grid.Row="5" Grid.Column="0"/>
<TextBlock Text="{Binding starsTwo}" FontSize="24"
Grid.Row="5" Grid.Column="1"/>
<TextBlock Text="1 Stars: " FontSize="24"
Grid.Row="6" Grid.Column="0"/>
<TextBlock Text="{Binding starsOne}" FontSize="24"
Grid.Row="6" Grid.Column="1"/>
<StackPanel Grid.ColumnSpan="2" Grid.Row="7"
ManipulationStarted="AppItemManipulationStarted"
ManipulationCompleted="AppItemManipulationCompleted">
<Image x:Name="GalleryPreview" Source="/Assets/images/blub.png"/>
</StackPanel>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
<!--LayoutRoot contains the root grid where all other page content is placed-->
<Grid x:Name="LayoutRoot">
<phone:Panorama x:Name="AppPanorama" Title="Title"
ItemsSource="{Binding}"
SelectionChanged="PanoramaSelectionChanged"
HeaderTemplate="{StaticResource PanoramaHeaderTemplate}"
ItemTemplate="{StaticResource PanormaItemTemplate}">
</phone:Panorama>
</Grid>
</phone:PhoneApplicationPage>
当我尝试使用FindName("GalleryPreview")
LogUtil.Log(AppPanorama.FindName("GalleryPreview") == null ? "null" : AppPanorama.FindName("GalleryPreview"));
LogUtil.Log(LayoutRoot.FindName("GalleryPreview") == null ? "null" : LayoutRoot.FindName("GalleryPreview"));
LogUtil.Log(AppPanorama.SelectedItem);
// output:
// null
// null
// App.Model.Store