public class IsEmptyChoiceValidatorBehaviour : Behavior
{
static readonly BindablePropertyKey IsEmptyPropertyKey =
BindableProperty.CreateReadOnly("IsEmpty", typeof(bool),
typeof(IsEmptyChoiceValidatorBehaviour), false);
public static readonly BindableProperty IsEmptyProperty =
IsEmptyPropertyKey.BindableProperty;
public bool IsEmpty
{
get { return (bool)GetValue(IsEmptyProperty); }
set { SetValue(IsEmptyProperty, value); }
}
protected override void OnAttachedTo(EntryChoices bindable)
{
base.OnAttachedTo(bindable);
bindable.SelectedItemChanged += Bindable_SelectedItemChanged;
}
protected override void OnDetachingFrom(EntryChoices bindable)
{
base.OnDetachingFrom(bindable);
bindable.SelectedItemChanged -= Bindable_SelectedItemChanged;
}
private void Bindable_SelectedItemChanged(object? sender,
ObservableCollection e)
{
if (e is null)
IsEmpty = true;
else
IsEmpty = (e.Count == 0);
}
}
Вот пример проблемы: e определяется как список . Когда e имеет значение, isempty является false , как я ожидаю (но false также является значением по умолчанию).
В моем проекте .net 8 Maui у меня есть несколько поведений для моих пользовательских компонентов. Один из них сводит меня с ума. < /P> Это код: < /p> [code]public class IsEmptyChoiceValidatorBehaviour : Behavior { static readonly BindablePropertyKey IsEmptyPropertyKey = BindableProperty.CreateReadOnly("IsEmpty", typeof(bool), typeof(IsEmptyChoiceValidatorBehaviour), false);
public static readonly BindableProperty IsEmptyProperty = IsEmptyPropertyKey.BindableProperty;
public bool IsEmpty { get { return (bool)GetValue(IsEmptyProperty); } set { SetValue(IsEmptyProperty, value); } }
private void Bindable_SelectedItemChanged(object? sender, ObservableCollection e) { if (e is null) IsEmpty = true; else IsEmpty = (e.Count == 0); } } [/code] Вот пример проблемы: e определяется как список . Когда e имеет значение, isempty является false , как я ожидаю (но false также является значением по умолчанию).