当用户单击主页面列表视图中的一个或多个项目时,我需要将数据传递给第二个数组,该数组将转到下一个页面上的签出。我不知道如何将数据从一个列表视图传递到另一个列表视图。
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);
}
}
}发布于 2018-04-06 03:06:13
我不太清楚你想要什么真正的效果,但原则应该是一样的。以下是一个完整的例子。
在MainPage.xaml中,有一个ListView,
<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代码,
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中显示数据,
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>;
}https://stackoverflow.com/questions/49682130
复制相似问题