Мне нужно добавить свойство IsVisible в ячейку ввода, используя пользовательское свойство
(я использовал высоту для изменения при изменении видимости, но код не работает), например:
public class BindableEntryCell : EntryCell
{
public static readonly BindableProperty IsVisibleProperty =
BindableProperty.Create(
propertyName: "IsVisible",
returnType: typeof(bool),
declaringType: typeof(BindableEntryCell),
propertyChanged: OnIsVisibleChanged);
public bool IsVisible
{
get { return (bool)GetValue(IsVisibleProperty); }
set { SetValue(IsVisibleProperty, value); }
}
private static void OnIsVisibleChanged(BindableObject bindable, object oldValue, object newValue)
{
if (bindable is BindableEntryCell EntryCell)
{
EntryCell.IsVisible = (bool)newValue;
var YesHeight = EntryCell.Height;
var NoHeight = 0;
if ((bool)newValue)
EntryCell.Height = YesHeight;
else
EntryCell.Height = NoHeight;
}
}
}
Или используя Конвертер значений (но есть ошибка несоответствия ошибок привязки, даже если я сгибаюсь вдвое), например:
public class HeightToVisabilityConverter : BaseConverter<HeightToVisabilityConverter>
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var Cell = (EntryCell)parameter;
var height = Cell.Height;
if ((bool)value )
return 0;
else
return height;
}
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
или любым другим способом, я думал, используя высоту, но что-то принято, пожалуйста, помогите?