Как обновить sh вкладку в приложении Xamarin.Forms - PullRequest
0 голосов
/ 02 марта 2020

Мое приложение работает очень гладко, основная проблема, с которой я сталкиваюсь, заключается в том, что у меня есть кнопка сохранения, после нажатия на которую она сохраняет экземпляр значений, введенных пользователем в базу данных SQLite локально. Когда я переключаюсь на другую вкладку, она не сохраняется ... но если я закрываю приложение, то снова открываю его там, как будто нет щелчка по ссылке sh через приложение. также, когда я нажимаю «Сохранить», я хотел бы, чтобы все поля ввода, которые пользователь заполнял, оставались пустыми go после нажатия кнопки сохранения.

 void SaveButton_Clicked(object sender, System.EventArgs e)
        {
            MainWindowViewModel APR = new MainWindowViewModel()
            {
                ProductName = proName.Text,
                TotalAPR = totAPR.Text,
                Total = tot.Text,
                Monthly = mon.Text
            };

            using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
            {
                conn.CreateTable<MainWindowViewModel>();
                int rowsAdded = conn.Insert(APR);
            }

        }

        protected override void OnAppearing()
        {
            base.OnAppearing();
            using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
            {
                conn.CreateTable<MainWindowViewModel>();
                var APRS = conn.Table<MainWindowViewModel>().ToList();

                APRListView.ItemsSource = APRS;
            }
        }

Выше приведен мой код для кнопки сохранения и появления. Ниже кнопка xaml для сохранения (не обязательно, если нужно)

 <Button Text="Save"
                TextColor="#FFA600"
                BackgroundColor="#2B333F"
                Clicked="SaveButton_Clicked"
                FontSize="16"
                Padding="10"
                Grid.Column="1"
                Grid.ColumnSpan="3"
                Grid.Row="14"
                Grid.RowSpan="2"
                VerticalOptions="Center"
                HorizontalOptions="Center"
                Margin="0,0,0,-20"/>

1 Ответ

0 голосов
/ 02 марта 2020

Отсутствует код в подпрограмме SaveButton_Clicked

BindingContext = new MainWindowViewModel();

        OnAppearing();

Полный код должен быть

void SaveButton_Clicked(object sender, System.EventArgs e)
    {
        MainWindowViewModel APR = new MainWindowViewModel()
        {
            ProductName = proName.Text,
            TotalAPR = totAPR.Text,
            Total = tot.Text,
            Monthly = mon.Text
        };


        using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
        {
            conn.CreateTable<MainWindowViewModel>();
            int rowsAdded = conn.Insert(APR);
        }

        DisplayAlert("Saved!", "Your APR has been saved!", "OK");

        BindingContext = new MainWindowViewModel();

        OnAppearing();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        using (SQLiteConnection conn = new SQLiteConnection(App.FilePath))
        {
            conn.CreateTable<MainWindowViewModel>();
            var APRS = conn.Table<MainWindowViewModel>().ToList();

            APRListView.ItemsSource = APRS;


        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...