2015-06-16 2 views
0

Я создаю приложение в Xamarin.forms, в котором я хочу изменить страницу с некоторым условием. Если моя таблица sqlite заполнена, то я хотел перейти на вторую страницу, иначе я перейду на первую страницу, когда мое приложение начнется в это время, я должен проверить.Если значение присутствует в sqlite, перейдите на вторую страницу. Первая страница в Xamarin

Шаг: -

1) когда мы щелкаем приложение сначала будет проверять в SQLite базы данных, является ли пустая база данных или нет.

2) если база данных пуста, она отобразит первую страницу, а затем нажмите кнопку, чтобы сохранить значение в базе данных и перейти на вторую страницу.

3) если база данных не пуста, то она напрямую переходит на вторую страницу.

вот мой пример кода

public static Connect Data { get; private set; } 
    public static MasterDetailPage MasterDetailPage; 

    public App(string dbPath, ISQLitePlatform sqlitePlatform) 
    { 

     Data = new Connect(sqlitePlatform, dbPath); 

     List<Username> User = await App.Data.User(); 

     if (User.Count() > 0) 
     { 
      MasterDetailPage = new Xamarin.Forms.MasterDetailPage 
      { 
       Master = new Menu(), 
       Detail = new NavigationPage(new second()) 
       { 
        Tint = Color.FromHex("3F51B5") 
       } 
      }; 

      MasterDetailPage.MasterBehavior = MasterBehavior.Popover; 

      MainPage = MasterDetailPage; 
     } 
     else 
     { 
      MainPage = new NavigationPage(new first()) 
      { 
       Tint = Color.FromHex("3F51B5") 
      }; 
     } 
    } 

Я знаю, что мой код не так, пожалуйста, предложить мне, как решить эти проблемы.

Список пользователей = ждут App.Data.User(); // показывать ошибку ждут Нуждается функции асинхронной, но вы не можете определить приложение имеет ASync

как я буду получать счет пользователя из базы данных

+0

0 Что такое "не так" с кодом? Вам нужно будет уточнить, в чем проблема: – JordanMazurke

+0

@JordanMazurke У меня есть редактирование в моем коде frm там u теперь можно сделать ошибку t –

ответ

0

Вы не можете использовать методы async в конструкторе. Один из вариантов, чтобы переместить код асинхронной инициализации задачи, как это:

public class App 
{ 
    private readonly Task initTask; 

    public App(string dbPath, ISQLitePlatform sqlitePlatform) 
    { 
    initTask = Init(); 
    } 

    private async Task Init() 
    { 
    // Move your code here 
    } 
} 

... но это часто рассматривается как плохая практика. Вы определенно не должны использовать async в конструкторе класса Xamarin.Forms App.

 Смежные вопросы

  • Нет связанных вопросов^_^