Как достать объекты из БД и занести их в picker

151
20 октября 2019, 08:10

Чтобы, при выборе в нём, они заносились в новый список, чтобы произвести с ними расчёты. Заранее благодарю за помощь

    namespace Calorizator1
{
    public partial class App : Application
    {
        public const string DATABASE_NAME = "products.db";
        public static ProductRepository database;
        public static ProductRepository Database
        {
            get
            {
                if (database == null)
                {
                    database = new ProductRepository(DATABASE_NAME);
                }
                return database;
            }
        }
        public App()
        {
            InitializeComponent();
        MainPage = new NavigationPage(new MainPage());
    }
public partial class MainPage : MasterDetailPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private void ButtonProductsList_Clicked(object sender, EventArgs e)
    {
        Detail = new NavigationPage(new ProductsList());
        IsPresented = false;
    }
    private void ButtonCalorizator_Clicked(object sender, EventArgs e)
    {
        Detail = new NavigationPage(new MainPage());
        IsPresented = false;
    }
}
 namespace Calorizator1
{
    public partial class ProductsList: ContentPage
    {
        public ProductsList()
        {
            InitializeComponent();
        ToolbarItem tb = new ToolbarItem
        {
            Text = "Добавить",
            Order = ToolbarItemOrder.Secondary,
            Priority = 0,
        };
        tb.Clicked += async (e, c) =>
        {
            Product product = new Product();
            ProductPage productPage = new ProductPage
            {
                BindingContext = product
            };
            await Navigation.PushAsync(productPage);
        };
        ToolbarItems.Add(tb);
    }
    protected override void OnAppearing()
    {
        productsList.ItemsSource = App.Database.GetItems();
        base.OnAppearing();
    }
    //обработка нажатия элемента в списке
    private async void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
        Product selectedProduct = (Product)e.SelectedItem;
        ProductPage productPage = new ProductPage
        {
            BindingContext = selectedProduct
        };
        await Navigation.PushAsync(productPage);
    }
}
}
namespace Calorizator1
{
[Table ("Products")]
public class Product
{
    [PrimaryKey, AutoIncrement, Column("_id")]
    public int Id { get; set; }
    public string Name { get; set; }
    public double Belki { get; set; }
    public double Ziri { get; set; }
    public double Ugli { get; set; }
    public double Calorii { get; set; }
}
}
 public partial class ProductPage : ContentPage
{
    public ProductPage()
    {
        InitializeComponent();
    }
    private void SaveProduct(object sender, EventArgs e)
    {
        var product = (Product)BindingContext;
        if (!String.IsNullOrEmpty(product.Name))
        {
            App.Database.SaveItem(product);
        }
        this.Navigation.PopAsync();
    }
    private void DeleteProduct(object sender, EventArgs e)
    {
        var product = (Product)BindingContext;
        App.Database.DeleteItem(product.Id);
        this.Navigation.PopAsync();
    }
    private void Cancel(object sender, EventArgs e)
    {
        this.Navigation.PopAsync();
    }
}
}
    namespace Calorizator1
{
    public class ProductRepository
    {
        SQLiteConnection database;
        public ProductRepository(string filename)
        {
            string databasePath = DependencyService.Get<ISQLite>().GetDatabasePath(filename);
            database = new SQLiteConnection(databasePath);
            database.CreateTable<Product>();
        }
        public IEnumerable<Product> GetItems()
        {
            return (from i in database.Table<Product>() select i).ToList();
        }
        public Product GetItem(int id)
        {
            return database.Get<Product>(id);
        }
        public int DeleteItem(int id)
        {
            return database.Delete<Product>(id);
        }
        public int SaveItem(Product item)
        {
            if (item.Id != 0)
            {
                database.Update(item);
                return item.Id;
            }
            else
            {
                return database.Insert(item);
            }
        }
    }
}
READ ALSO
Авторизация с __RequestVerificationToken и cookie

Авторизация с __RequestVerificationToken и cookie

Пытаюсь написать программу для парсинга неких данных с сайта, с парсингом проблем быть не должно, но от авторизации уже голова болитНе пойму...

214
Перенос кода из java на c#

Перенос кода из java на c#

Как получить байтовый массив из запросаНапример есть следующий код на java:

131
В чём разница между сборкой и библиотекой?

В чём разница между сборкой и библиотекой?

Перечитываю о пространстве имён и сборке и что-то зацепился за эти слова

132