Я работаю над школьным проектом с использованием Xamarin. Я не очень хорошо знаком с Xamarin, поэтому постараюсь изо всех сил объяснить мою проблему. В моем приложении есть страница курсов и страница добавления новых курсов. При нажатии кнопки «Добавить новый курс» я получаю сообщение об ошибке: System.Reflection.TargetInvocationException — исключение было создано целью вызова. Я понятия не имею, что делаю не так, и потратил более 10 часов, пытаясь понять это. Есть ли лучший способ перейти на нужную страницу?
По требованиям проекта я ограничен запуском на Android только с использованием Pie 9.0 — API 28
CoursesPage.xaml
AddNewCoursePage.xaml
Objective
Performance
CoursesModel.cs
public class CoursesModel : BaseViewModel
{
public ObservableRangeCollection AllCourses { get; set; }
public AsyncCommand RefreshCommand { get; }
public AsyncCommand NavigateToAddNewCoursePageCommand { get; }
public CoursesModel()
{
Title = "Courses";
AllCourses = new ObservableRangeCollection();
RefreshCommand = new AsyncCommand(Refresh);
NavigateToAddNewCoursePageCommand = new AsyncCommand(NavigateToAddNewCoursePage);
}
async Task NavigateToAddNewCoursePage()
{
await Shell.Current.GoToAsync(nameof(AddNewCoursePage));
}
async Task Refresh()
{
Busy();
AllCourses.Clear();
var courses = await CourseService.GetAllCourses();
AllCourses.AddRange(courses);
NotBusy();
}
}
AddNewCourseModel
публичный класс AddNewCourseModel: BaseViewModel
{
частная строка CourseName;
public AsyncCommand AddCourseCommand { get; }
public AsyncCommand CancelCommand { get; }
public AddNewCourseModel()
{
Title = "Add New Course";
AddCourseCommand = new AsyncCommand(AddCourse);
CancelCommand = new AsyncCommand(Cancel);
}
async Task AddCourse()
{
var course = new Course()
{
CourseName = CourseName
};
await CourseService.AddCourse(course);
await Shell.Current.GoToAsync("CoursesPage");
}
async Task Cancel()
{
await Shell.Current.GoToAsync("CoursesPage");
}
public string CourseName
{
get => courseName;
set => SetProperty(ref courseName, value);
}
}
AddNewCoursePage.xaml.cs
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class AddNewCoursePage : ContentPage
{
public AddNewCoursePage()
{
InitializeComponent();
}
}
AppShell.xaml.cs
public partial class AppShell : Xamarin.Forms.Shell
{
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute(nameof(CoursesPage), typeof(CoursesPage));
Routing.RegisterRoute(nameof(AddNewCoursePage), typeof(AddNewCoursePage));
Routing.RegisterRoute(nameof(TermsPage), typeof(TermsPage));
Routing.RegisterRoute(nameof(AddNewTermPage), typeof(AddNewTermPage));
}
}
Подробнее здесь: https://stackoverflow.com/questions/701 ... n-by-the-t
System.Reflection.TargetInvocationException — исключение было создано целью вызова ⇐ C#
Место общения программистов C#
1770548910
Anonymous
Я работаю над школьным проектом с использованием Xamarin. Я не очень хорошо знаком с Xamarin, поэтому постараюсь изо всех сил объяснить мою проблему. В моем приложении есть страница курсов и страница добавления новых курсов. При нажатии кнопки «Добавить новый курс» я получаю сообщение об ошибке: [b]System.Reflection.TargetInvocationException — исключение было создано целью вызова[/b]. Я понятия не имею, что делаю не так, и потратил более 10 часов, пытаясь понять это. Есть ли лучший способ перейти на нужную страницу?
По требованиям проекта я ограничен запуском на Android только с использованием Pie 9.0 — API 28
CoursesPage.xaml
AddNewCoursePage.xaml
Objective
Performance
CoursesModel.cs
public class CoursesModel : BaseViewModel
{
public ObservableRangeCollection AllCourses { get; set; }
public AsyncCommand RefreshCommand { get; }
public AsyncCommand NavigateToAddNewCoursePageCommand { get; }
public CoursesModel()
{
Title = "Courses";
AllCourses = new ObservableRangeCollection();
RefreshCommand = new AsyncCommand(Refresh);
NavigateToAddNewCoursePageCommand = new AsyncCommand(NavigateToAddNewCoursePage);
}
async Task NavigateToAddNewCoursePage()
{
await Shell.Current.GoToAsync(nameof(AddNewCoursePage));
}
async Task Refresh()
{
Busy();
AllCourses.Clear();
var courses = await CourseService.GetAllCourses();
AllCourses.AddRange(courses);
NotBusy();
}
}
AddNewCourseModel
публичный класс AddNewCourseModel: BaseViewModel
{
частная строка CourseName;
public AsyncCommand AddCourseCommand { get; }
public AsyncCommand CancelCommand { get; }
public AddNewCourseModel()
{
Title = "Add New Course";
AddCourseCommand = new AsyncCommand(AddCourse);
CancelCommand = new AsyncCommand(Cancel);
}
async Task AddCourse()
{
var course = new Course()
{
CourseName = CourseName
};
await CourseService.AddCourse(course);
await Shell.Current.GoToAsync("CoursesPage");
}
async Task Cancel()
{
await Shell.Current.GoToAsync("CoursesPage");
}
public string CourseName
{
get => courseName;
set => SetProperty(ref courseName, value);
}
}
AddNewCoursePage.xaml.cs
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class AddNewCoursePage : ContentPage
{
public AddNewCoursePage()
{
InitializeComponent();
}
}
AppShell.xaml.cs
public partial class AppShell : Xamarin.Forms.Shell
{
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute(nameof(CoursesPage), typeof(CoursesPage));
Routing.RegisterRoute(nameof(AddNewCoursePage), typeof(AddNewCoursePage));
Routing.RegisterRoute(nameof(TermsPage), typeof(TermsPage));
Routing.RegisterRoute(nameof(AddNewTermPage), typeof(AddNewTermPage));
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/70106839/system-reflection-targetinvocationexception-exception-has-been-thrown-by-the-t[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия