Я знаю, что этот вопрос задавался, но моя ситуация немного отличается.Все мои данные сохраняются на странице C # следующим образом:
public class RestaurantsDataInfo
{
public string name { get; set; }
public string picture { get; set; }
public string openclosetime { get; set; }
public string state { get; set; }
public string address { get; set; }
}
public class RestaurantManager
{
public static List<RestaurantsDataInfo> GetRestaurants()
{
var restaurant = new List<RestaurantsDataInfo>();
restaurant.Add(new RestaurantsDataInfo { name = "Pizzeria", address = "22 - Vo Van Ngan Str", openclosetime = "8 AM to 9 PM", picture = "Assets/Cover7.jpg", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "BBQ Kings", address = "55 - Vo Van Ngan Str", openclosetime = "8 AM to 10 PM", picture = "Assets/Cover6.jpg", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "Lotteria", address = "200 - Vo Van Ngan Str", openclosetime = "8 AM to 8:30 PM", picture = "Assets/Cover5.png", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "KFC", address = "90 - Vo Van Ngan Str", openclosetime = "8 AM to 8 PM", picture = "Assets/Cover4.png", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "Mugsy Dogs", address = "112 - Linh Trung Str", openclosetime = "8 AM to 8:30 PM", picture = "Assets/Cover9.png", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "American Hot Dog", address = "04 - Duong So 5 Str", openclosetime = "8 AM to 8:30 PM", picture = "Assets/Cover10.jpg", state = "Online" });
restaurant.Add(new RestaurantsDataInfo { name = "Burger King", address = "404 - Duong So 6 Str", openclosetime = "24 hours", picture = "Assets/Cover11.png", state = "Online" });
return restaurant;
}
}
Вот страница, которая связывает все данные:
<GridView Grid.Row="1" x:Name="ListOfRestaurant" IsItemClickEnabled="True" ItemClick="ListOfRestaurant_ItemClick" ScrollViewer.IsScrollInertiaEnabled="True" ItemsSource="{x:Bind RES}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:RestaurantsDataInfo">
<StackPanel Width="197" Height="240">
<Image x:Name="ResPic" Source="{x:Bind picture}" Stretch="Fill" Height="150" Width="150"/>
<TextBlock x:Name="RestaurantName" Text="{x:Bind name}" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Brown"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind state}" Margin="3" Foreground="Green"/>
<TextBlock Text="{x:Bind address}" Margin="3" Foreground="BlueViolet"/>
</StackPanel>
<TextBlock Text="{x:Bind openclosetime}" HorizontalAlignment="Center" Margin="3" Foreground="Salmon"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
Вот ее кодовый конец:
private void ListOfRestaurant_ItemClick(object sender, ItemClickEventArgs e)
{
var item = (RestaurantsDataInfo)e.ClickedItem;
var title = item.name;
var container = ListOfRestaurant.ContainerFromItem(e.ClickedItem) as GridViewItem;
if (container != null)
{
//find the image
var root = (FrameworkElement)container.ContentTemplateRoot;
var image = (UIElement)root.FindName("ResPic");
//prepare the animation
ConnectedAnimationService.GetForCurrentView().PrepareToAnimate("Image", image);
}
switch (title)
{
case "KFC":
Frame.Navigate(typeof(DetailRestaurant), _storeditem = item.picture);
break;
}
}
Теперь я хочу перейти к «DetailRestaurant» и отправить на эту страницу информацию, которая содержится в RestaurantDataInfo, чтобы на странице сведений могла отображаться вся база контента в том ресторане, на который я нажимаю