Получение пользовательских данных из записи на странице просмотра в Xamarin

#c# #.net #xamarin #.net-core #xamarin.forms

#c# #.net #xamarin #.net-ядро #xamarin.forms

Вопрос:

В моем приложении Xamarin я смог получить данные от пользователя через Entry и привязать их к ViewModel.cs.

Но теперь я хочу получить эти пользовательские данные из записи на странице просмотра.

Ниже приведен код для ввода на странице .xml, а также для сбора данных, которые я использовал ViewModel (он работал отлично).

Как я мог бы получить пользовательские данные через запись в PageView.xml.cs тоже.

PageView.xml

 <Entry
    Text="{Binding Email}"
    Keyboard="Email"
    ReturnType="Done"
    FontSize="15"
    Placeholder="Enter Email" >
</Entry>

<Entry
    Text="{Binding Password}"
    Keyboard="Numberic"
    ReturnType="Done"
    FontSize="15"
    IsPassword="true"
    MaxLenght="8"
    Placeholder="Enter Password" >
</Entry>

<Button
    x:Name="SubmitButton"
    Text="Submit" />
  

Просмотр страницы.xml.cs

 FormDataButton.Clicked  = async (sender, args) =>
{
    if (Email != null amp;amp; Password != null amp;amp; Password.Lenght == 8)
    {
        // sample code
        var email = Email;
        var password = Password;
    }
    else{
        Console.WriteLine("Error");
    }
}
  

Привязка данных, которую я использовал в ViewModel.cs

 private string _Email;
public string Email
{
    get => _Email;
    set => this.RaiseAndSetIfChanged(ref _Email, value);
}

private string _Password;
public string Password
{
    get => _Password;
    set => this.RaiseAndSetIfChanged(ref _Password, value);
}
  

Ответ №1:

если вы имеете в виду код, вы просто присваиваете элементу управления имя

 <Entry x:Name="MyEntry"
    Text="{Binding Email}"
    Keyboard="Email"
    ReturnType="Done"
    FontSize="15"
    Placeholder="Enter Email" >
</Entry>
  

затем в коде,

 if (myEntry.Text == "blah") ...
  

однако, если вы уже используете привязку данных, вы можете просто получить доступ к значению через свою виртуальную машину

 if (VM.Email == "blah") ...
  

Комментарии:

1. вау, легко .. одна вещь, я хочу проверить, равна ли длина пароля 8 или нет, я использовал это Password.SelectionLength == 8 , но это не работает..

2. learn.microsoft.com/en-us/dotnet/api/…