Я использую Xamarin.Forms с MVVM Pattern. То, что я пытаюсь сделать прямо здесь, это получить текст (электронная почта, пароль, подтвердить пароль) от пользователя и отправить его в viewmodel.
Теперь у меня уже есть класс RegisterBindingModel.cs, который имеет эти три свойства
Так что вместо этого кода в View Model
public string Email { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
Я использовал этот код
public RegisterBindingModel RegisterBindingModel { get; set; }
Но я получаю нулевое значение RegisterBindingModel при отладке после этого редактирования.
Содержание страницы xaml
И строка BindingContext="{Binding RegisterBindingModel}
была удалена из тега размещения стека
<StackLayout HorizontalOptions="CenterAndExpand">
<Label Text="Register Now! "/>
<StackLayout BindingContext="{Binding RegisterBindingModel}">
<Entry Text="{Binding Email}" Placeholder="Email" />
<Entry Text="{Binding Password}" IsPassword="True" Placeholder="Password" />
<Entry Text="{Binding ConfirmPassword}" IsPassword="True" Placeholder="ConfirmPassword" />
</StackLayout>
<Button Text="Register" Command="{Binding RegisterCommand}" />
</StackLayout>
И в Registerpage.xaml.cs я использовал эту строку кода:
BindingContext = new RegisterViewModel(Navigation);
и класс RegisterBindingModel:
public class RegisterBindingModel
{
public string Email { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
}
Запрошенное редактирование
private async void Register()
{
var isSuccess = await _identityService.RegisterAsync(RegisterBindingModel);
}
Так что же пошло не так после того, как я изменил код?