|
|
@ -346,6 +346,8 @@ namespace Avalonia.Controls |
|
|
Presenter.Items = newValue; |
|
|
Presenter.Items = newValue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
UpdatePseudoClasses(); |
|
|
|
|
|
|
|
|
SubscribeToItems(newValue); |
|
|
SubscribeToItems(newValue); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -372,9 +374,7 @@ namespace Avalonia.Controls |
|
|
|
|
|
|
|
|
Presenter?.ItemsChanged(e); |
|
|
Presenter?.ItemsChanged(e); |
|
|
|
|
|
|
|
|
var collection = sender as ICollection; |
|
|
UpdatePseudoClasses(); |
|
|
PseudoClasses.Set(":empty", collection == null || collection.Count == 0); |
|
|
|
|
|
PseudoClasses.Set(":singleitem", collection != null && collection.Count == 1); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
|
@ -431,9 +431,6 @@ namespace Avalonia.Controls |
|
|
/// <param name="items">The items collection.</param>
|
|
|
/// <param name="items">The items collection.</param>
|
|
|
private void SubscribeToItems(IEnumerable items) |
|
|
private void SubscribeToItems(IEnumerable items) |
|
|
{ |
|
|
{ |
|
|
PseudoClasses.Set(":empty", items == null || items.Count() == 0); |
|
|
|
|
|
PseudoClasses.Set(":singleitem", items != null && items.Count() == 1); |
|
|
|
|
|
|
|
|
|
|
|
if (items is INotifyCollectionChanged incc) |
|
|
if (items is INotifyCollectionChanged incc) |
|
|
{ |
|
|
{ |
|
|
CollectionChangedEventManager.Instance.AddListener(incc, this); |
|
|
CollectionChangedEventManager.Instance.AddListener(incc, this); |
|
|
@ -469,6 +466,12 @@ namespace Avalonia.Controls |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void UpdatePseudoClasses() |
|
|
|
|
|
{ |
|
|
|
|
|
PseudoClasses.Set(":empty", ItemCount == 0); |
|
|
|
|
|
PseudoClasses.Set(":singleitem", ItemCount == 1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
protected static IInputElement GetNextControl( |
|
|
protected static IInputElement GetNextControl( |
|
|
INavigableContainer container, |
|
|
INavigableContainer container, |
|
|
NavigationDirection direction, |
|
|
NavigationDirection direction, |
|
|
|