Здравствуйтею Хотел в приложении сделать добавление человека и вывод его в 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 во всех проектах.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости