选择列表框后将对象从数据库传递到下一页
Pass object from DB to next page after listbox selection
我有一个列表框,其中填充了存储在 SQLite 数据库中的产品。列表框填充如下:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string navigatedFrom;
base.OnNavigatedTo(e);
navigatedFrom = (string)e.Parameter;
if (navigatedFrom == "main")
{
var products = new ObservableCollection<Product>(data.GetProducts().ToList());
foreach (var product in products)
{
ListBox.Items.Add("Product Name: " + product.ProductName + " Price: " + product.Price + " Quantity: " + product.Quantity);
}
}
else
{
}
}
列表框 selection 的处理方式如下:
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var product = ListBox.SelectedItem as Product;
if (product != null)
{
Frame.Navigate(typeof(DetailsPage), product.Id);
}
ListBox.SelectedIndex = -1;
}
当从列表框中 selected 产品时,应用程序应导航到详细信息页面,该页面显示 selected 产品对象的所有详细信息。当我 select 列表中的产品时,我的问题出现了,产品对象始终为空。如何确保产品对象以正确的格式填充正确的信息?
改变这个:
foreach (var product in products)
{
ListBox.Items.Add("Product Name: " + product.ProductName + " Price: " + product.Price + " Quantity: " + product.Quantity);
}
至
foreach (var product in products)
{
ListBox.Items.Add(product);
}
示例产品 class:
public class Product
{
public string ProductName { get; private set; }
public string Price { get; private set; }
public string Quantity { get; private set; }
public override string ToString()
{
return $"Product Name: {this.ProductName} Price: {this.Price} Quantity: {this.Quantity}";
}
}
我有一个列表框,其中填充了存储在 SQLite 数据库中的产品。列表框填充如下:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string navigatedFrom;
base.OnNavigatedTo(e);
navigatedFrom = (string)e.Parameter;
if (navigatedFrom == "main")
{
var products = new ObservableCollection<Product>(data.GetProducts().ToList());
foreach (var product in products)
{
ListBox.Items.Add("Product Name: " + product.ProductName + " Price: " + product.Price + " Quantity: " + product.Quantity);
}
}
else
{
}
}
列表框 selection 的处理方式如下:
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var product = ListBox.SelectedItem as Product;
if (product != null)
{
Frame.Navigate(typeof(DetailsPage), product.Id);
}
ListBox.SelectedIndex = -1;
}
当从列表框中 selected 产品时,应用程序应导航到详细信息页面,该页面显示 selected 产品对象的所有详细信息。当我 select 列表中的产品时,我的问题出现了,产品对象始终为空。如何确保产品对象以正确的格式填充正确的信息?
改变这个:
foreach (var product in products)
{
ListBox.Items.Add("Product Name: " + product.ProductName + " Price: " + product.Price + " Quantity: " + product.Quantity);
}
至
foreach (var product in products)
{
ListBox.Items.Add(product);
}
示例产品 class:
public class Product
{
public string ProductName { get; private set; }
public string Price { get; private set; }
public string Quantity { get; private set; }
public override string ToString()
{
return $"Product Name: {this.ProductName} Price: {this.Price} Quantity: {this.Quantity}";
}
}