У меня есть запись, которую я хочу выделить красным, когда запись пуста. Я использую SyncFusion SFTextInputLayout для своей записи, и у него есть свойство "HasError", которое после установки значения true автоматически выделяет все мое значение красным цветом.
Вот следующий код XAML для SFTextInputLayout
<inputLayout:SfTextInputLayout Grid.Column="0" Hint="Phone Number" ContainerType="{StaticResource RepairOrderContainerType}" HasError="{Binding IsPhoneNumberError}" FocusedColor="{StaticResource AccentColor}" VerticalOptions="Center" HorizontalOptions="Start">
<Entry Keyboard="Telephone" Style="{StaticResource TextInputStyle}" Text="{Binding PhoneNumber}"/>
</inputLayout:SfTextInputLayout>
Как видите, у меня есть две привязки, которые обрабатывают текст записи, и еще одна, чтобы проверить, есть ли в ней ошибка или нет. Несмотря на то, что это решение работает, оно станет избыточным довольно скоро, когда число моих полей ввода увеличится. Для каждого поля ввода мне нужно другое логическое значение, чтобы покрыть его свойство Error, как показано ниже.
private string _phoneNumber;
public string PhoneNumber
{
get => _phoneNumber;
set
{
IsPhoneNumberError = string.IsNullOrWhiteSpace(value) ? true : false;
this.RaiseAndSetIfChanged(ref _phoneNumber, _phoneNumber);
}
}
private bool _isPhoneNumberError = false;
public bool IsPhoneNumberError
{
get => _isPhoneNumberError;
set
{
this.RaiseAndSetIfChanged(ref _isPhoneNumberError, value);
}
}
Мне интересно, есть ли способ упростить этот код. Заранее спасибо!