Здравствуйтею Хотел в приложении сделать добавление человека и вывод его в listview, однако происходит краш вот тут :
public partial class PersonPage : ContentPage
{
public MainViewModel ViewModel { get; private set; }
public PersonPage(MainViewModel vm)
{
InitializeComponent(); //в этой строчке
ViewModel = vm;
this.BindingContext = ViewModel;
}
}
С вот таким сообщением:
Unhandled Exception: System.MissingMethodException: Method not found: void Xamarin.Forms.Xaml.Internals.SimpleValueTargetProvider..ctor(object[],object,Xamarin.Forms.Internals.INameScope)
Пытался делать через MVVM. Вот код MainViewModel:
public class MainViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Person person { get; private set; }
PersonsListViewModel pvm;
public MainViewModel()
{
person = new Person();
}
public PersonsListViewModel ListViewModel
{
get { return pvm; }
set
{
if (pvm != value)
{
pvm = value;
OnPropertyChanged("ListViewModel");
}
}
}
public bool IsValid
{
get
{
return ((!string.IsNullOrEmpty(Name.Trim())) ||
(!string.IsNullOrEmpty(Surname.Trim())) ||
(!string.IsNullOrEmpty(Gender.Trim())) ||
(!string.IsNullOrEmpty(DoB.Trim())));
}
}
public string Name
{
get { return person.Name; }
set
{
if (person.Name != value)
{
person.Name = value;
OnPropertyChanged("Name");
}
}
}
public string Surname
{
get { return person.Surname; }
set
{
if (person.Surname != value)
{
person.Surname = value;
OnPropertyChanged("Surname");
}
}
}
public string DoB
{
get { return person.DoB; }
set
{
if (person.DoB != value)
{
person.DoB = value;
OnPropertyChanged("DoB");
}
}
}
public string Gender
{
get { return person.Gender; }
set
{
if (person.Gender != value)
{
person.Gender = value;
OnPropertyChanged("Gender");
}
}
}
public string Id
{
get { return person.Id; }
set
{
if (person.Id != value)
{
person.Id = value;
OnPropertyChanged("Id");
}
}
}
protected void OnPropertyChanged(string propName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
}
Код PersonPage.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:GenTree.ViewModels"
x:Class="GenTree.Views.PersonPage">
<StackLayout>
<StackLayout x:Name="personStack">
<Label Text="Name" />
<Entry Text="{Binding Name}" FontSize="Medium" />
<Label Text="Surname" />
<Entry Text="{Binding Surname}" FontSize="Medium" />
</StackLayout>
<StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand">
<Button Text="Add" Command="{Binding ListViewModel.SavePersonCommand}" CommandParameter="{Binding}" />
<Button Text="Delete" Command="{Binding ListViewModel.DeletePersonCommand}" CommandParameter="{Binding}" />
<Button Text="Back" Command="{Binding Path=ListViewModel.BackCommand}" />
</StackLayout>
</StackLayout>
</ContentPage>
Если что, скажите что ещё скинуть для полной картины. Заранее спасибо.
Проблема была решена обновлением Xamarin.forms до версии 4.3 во всех проектах.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники