我正在使用windows store 8.1應用程序,我在MainPage.xaml中使用List在MainPage.xaml中添加了網格如何根據第一頁上點擊的網格加載導航頁面(第2頁)上的UI
MainPage.xaml中
<GridView Margin="20" x:Name="main" SelectionMode="None" IsItemClickEnabled="True" ItemClick="main_ItemClick">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Background="Red" Width="250" Height="200">
<Grid.RowDefinitions>
<RowDefinition Height="150"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Stretch="UniformToFill" Source="{Binding ImageLocation}"/>
<TextBlock Text="{Binding Title}" Grid.Row="1" FontSize="28" />
<TextBlock Text="{Binding SubTitle}" Grid.Row="2" FontSize="16" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
MainPage.xaml.cs中
protected override void OnNavigatedTo(NavigationEventArgs e)
{
List<data> myList = new List<data>();
myList.Add(new data()
{
ImageLocation = @"Assets/network.png",
iName = "NetWork",
SubTitle ="Network",
Title = "Network"
});
myList.Add(new data()
{
ImageLocation = @"Assets/fb.png",
iName = "Facebook",
SubTitle = "Facebook",
Title = "Facebook"
});
main.ItemsSource = myList;
}
private void main_ItemClick(object sender, ItemClickEventArgs e)
{
Frame.Navigate(typeof(ListView));
}
我想,當有人點擊任何的網格,在ListView的頁面顯示一個TextBlock中被點選其中的MainPage格。
你不應該導航到'typeof(ListView)'。如果有的話,你應該明確地重命名該頁面,因爲它與'ListView'類相沖突。至於你能做什麼,Frame.Navigate可以傳入一個參數。你的ItemClickEventArgs有一個ClickedItem屬性,告訴你哪個項目被點擊(如哪個網格)。您可以獲取該值並將其傳遞給導航參數。然後你可以在OnNavigatedTo方法的'ListView'中檢索它。或者你可以使用ViewModel在它們之間傳遞數據。 – 2014-10-07 18:13:15