首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中下一页上的C# UWP将数据从一个ListView传递到第二个清单视图

数组中下一页上的C# UWP将数据从一个ListView传递到第二个清单视图
EN

Stack Overflow用户
提问于 2018-04-05 21:55:35
回答 1查看 238关注 0票数 0

当用户单击主页面列表视图中的一个或多个项目时,我需要将数据传递给第二个数组,该数组将转到下一个页面上的签出。我不知道如何将数据从一个列表视图传递到另一个列表视图。

代码语言:javascript
复制
    public struct DATA
    {
        public DATA(string distinguisher, double price, string description)
        {
            Distinguisher = distinguisher;
            Price = price;
            Description = description;
        }

        public string Distinguisher { get; }
        public double Price { get; }
        public string Description { get; }
    }

    public MainPage()
    {
        InitializeComponent();
    }

    public void btnBreakfast_Click(object sender)
    {
        //20 Elements for the Array
        DATA[] myData = new DATA[20]
        {
            new DATA("Breakfast", 4.00 ,  "Gourment Pancakes"),
            new DATA("Breakfast", 6.00 ,  "Eggs & Toast"),
            new DATA("Breakfast", 7.50 ,  "Oatmeal with OJ"),
            new DATA("Breakfast", 10.75 ,  "Fresh Waffles"),
            new DATA("Breakfast", 11.00 ,  "Bacon Egg & Cheese"),
            new DATA("Breakfast", 4.00 ,  "Bagel & Cream Cheese"),
            new DATA("Breakfast", 4.00 ,  "Butter Potatoes with Toast"),
            new DATA("Lunch", 9.50 ,  "Tuna Fish"),
            new DATA("Lunch", 8.00 ,  "Ham & Cheese"),
            new DATA("Lunch", 14.00 ,  "Buffalo Chicken Wrap"),
            new DATA("Lunch", 13.00 ,  "Cheeseburger with Fries"),
            new DATA("Lunch", 6.00 ,  " Jumbo Cheese Pizza"),
            new DATA("Lunch", 9.00,   "Hotdog with Fries"),
            new DATA("Lunch", 9.00,   "Philly Cheese Stake"),
            new DATA("Dinner", 22.00,   "Salmon with Two Sides"),
            new DATA("Dinner", 24.00,   "Steak with Two Sides"),
            new DATA("Dinner", 17.00,   "Chicken Parm Dinner"),
            new DATA("Dinner", 25.00,   "Extra Large Lasagna"),
            new DATA("Dinner", 15.00,   "Stuffed Shells"),
            new DATA("Dinner", 16.00,   "Penne Ala Vodka"),
        };

        for (int i = 0; i < myData.Length; i++)
        {
            if (myData[i].Distinguisher == "Breakfast")
            {
                HomePageListBox.Items.Add(myData[i].Description);
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2018-04-06 03:06:13

我不太清楚你想要什么真正的效果,但原则应该是一样的。以下是一个完整的例子。

在MainPage.xaml中,有一个ListView

代码语言:javascript
复制
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Button Content="Select" Click="btnBreakfast_Click"/>
    <ListView Grid.Row="1" Name="MainPageListView" ItemsSource="{Binding myData}" 
              SelectionMode="Multiple" SelectionChanged="MainPageListView_SelectionChanged">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Distinguisher}" Margin="5"/>
                    <TextBlock Text="{Binding Price}" Margin="5"/>
                    <TextBlock Text="{Binding description}" Margin="5"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

数据模型背后的MainPage.xaml.cs代码,

代码语言:javascript
复制
public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        myData = new DATA[20]{
        new DATA("Breakfast", 4.00 ,  "Gourment Pancakes"),
        new DATA("Breakfast", 6.00 ,  "Eggs & Toast"),
        new DATA("Breakfast", 7.50 ,  "Oatmeal with OJ"),
        new DATA("Breakfast", 10.75 ,  "Fresh Waffles"),
        new DATA("Breakfast", 11.00 ,  "Bacon Egg & Cheese"),
        new DATA("Breakfast", 4.00 ,  "Bagel & Cream Cheese"),
        new DATA("Breakfast", 4.00 ,  "Butter Potatoes with Toast"),

        new DATA("Lunch", 9.50 ,  "Tuna Fish"),
        new DATA("Lunch", 8.00 ,  "Ham & Cheese"),
        new DATA("Lunch", 14.00 ,  "Buffalo Chicken Wrap"),
        new DATA("Lunch", 13.00 ,  "Cheeseburger with Fries"),
        new DATA("Lunch", 6.00 ,  " Jumbo Cheese Pizza"),
        new DATA("Lunch", 9.00,   "Hotdog with Fries"),
        new DATA("Lunch", 9.00,   "Philly Cheese Stake"),

        new DATA("Dinner", 22.00,   "Salmon with Two Sides"),
        new DATA("Dinner", 24.00,   "Steak with Two Sides"),
        new DATA("Dinner", 17.00,   "Chicken Parm Dinner"),
        new DATA("Dinner", 25.00,   "Extra Large Lasagna"),
        new DATA("Dinner", 15.00,   "Stuffed Shells"),
        new DATA("Dinner", 16.00,   "Penne Ala Vodka"),  };
        this.DataContext = this;
        passData = new List<DATA>();
    }

    public DATA[] myData { get; set; }


    public List<DATA> passData { get; set; }

    public void btnBreakfast_Click(object sender, RoutedEventArgs e)
    {
        //You can have a filter here to filter the data you want to pass to the new page.
        for (int i = 0; i < passData.Count; i++)
        {
            if (myData[i].Distinguisher == "Breakfast")
            {
                // HomePageListBox.Items.Add(myData[i].description);
            }
        }

        Frame.Navigate(typeof(NewPage), passData);

    }

    private void MainPageListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        ListView list = sender as ListView;
        DATA selected = (DATA)list.SelectedItem;
        passData.Add(selected);
    }
}

public struct DATA
{
    public double Price { get; set; }
    public string description { get; set; }

    public string Distinguisher { get; set; }

    public DATA(string Distinguisher, double Price, string description)
    {
        this.Distinguisher = Distinguisher;
        this.Price = Price;
        this.description = description;

    }
}

选择项后,单击按钮,btnBreakfast_Click事件将触发导航到带有项数据的NewPage,然后可以在NewPage的OnNavigatedTo方法中获取数据并在NewPage中显示数据,

代码语言:javascript
复制
public NewPage()
{
    this.InitializeComponent();
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    //You can get data here, then you can display they in the xaml
   var data= e.Parameter as List<DATA>;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49682130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档