Я новичок в Xamarin. Я хочу добавить боковое меню, поэтому я взял этот код на GitHub и внедрил в свой проект.
У меня есть эта страница AccountsView:
public partial class AccountsView : ContentPage
{
public AccountsView()
{
InitializeComponent();
GetAccountsAsync();
}
private async void GetAccountsAsync()
{
var accounts = await SQLHelper.Connection.Table<Account>().ToListAsync();
lvwAccounts.ItemsSource = accounts;
}
async void Handle_Clicked(object sender, System.EventArgs e)
{
var account = (Account)((Button)sender).BindingContext;
await Navigation.PushAsync(new AccountDetailsView(account.Id));
}
}
Когда я нажимаю на меню, чтобы перейти на эту страницу, я получаю исключение "object reference not set to an instance of an object"
и внутреннее исключение:
"at project.Views.AccountsView + d__2.MoveNext () [0x0000f] в /Users/user/Projects/project/project/Views/AccountsView.xaml.cs:24 \ n --- Конец трассировки стека из предыдущее местоположение, где было сгенерировано исключение --- \ n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] в /Library/Frameworks/Xamarin.iOS.framework/Versions/11.9.1.24/src/Xamarin.iOS/ mcs / class / Referenceource / mscorlib / system / runtime / exceptionservices / exceptionservicescommon.cs: 152 \ n в System.Runtime.CompilerServices.AsyncMethodBuilderCore + <> c.b__6_0 (состояние System.Object) [0x00000] в / Library / Frameworks / Xamar .iOS.framework / Versions / 11.9.1.24 / src / Xamarin.iOS / mcs / class /ferencesource / mscorlib / system / runtime / compilerservices / AsyncMethodBuilder.cs: 1018 \ n в UIKit.UIKitSynchronizationContext + c__AnonStorey0.>. [0x00000] в /Library/Frameworks/Xamarin.iOS.framework/Versions/11.9.1.24/src/Xamarin.iOS/UIKit/UIKitSynchronizationContext.cs:24 \ n в Foundation.NSAsyncActionDispatcher.Apply () [0x00 000] в /Library/Frameworks/Xamarin.iOS.framework/Versions/11.9.1.24/src/Xamarin.iOS/Foundation/NSAction.cs:163 \ n --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение - - \ n в (управляемая оболочкой) UIKit.UIApplication.UIApplicationMain (int, string [], intptr, intptr) \ n в UIKit.UIApplication.Main (аргументы System.String [], субъект System.IntPtr, Делегат System.IntPtr) [0x00005] в /Library/Frameworks/Xamarin.iOS.framework/Versions/11.9.1.24/src/Xamarin.iOS/UIKit/UIApplication.cs:79 \ n в UIKit.UIApplication.Main (система. String [] args, System.String PrincipalClassName, System.String DelegateClassName) [0x00038] в /Library/Frameworks/Xamarin.iOS.framework/Versions/11.9.1.24/src/Xamarin.iOS/UIKit/UIApplication.cs:63 \ n в project.iOS.Application.Main (System.String [] args) [0x00001] в /Users/user/Projects/project/iOS/Main.cs:17 "
Если я удаляю метод GetAccountsAsync()
и он вызывает из ctor
, все работает нормально, но без данных.
Что-то с вызовом async
БД вызывает проблему.
Если я не реализую боковое меню и главную страницу, мой код работает нормально.
Может кто-нибудь помочь мне с этим?