#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
, но это не работает..