| File: Shell\IShellController.cs | Web Access |
| Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls) |
#nullable disable using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Threading.Tasks; namespace Microsoft.Maui.Controls { public interface IAppearanceObserver { void OnAppearanceChanged(ShellAppearance appearance); } public interface IFlyoutBehaviorObserver { void OnFlyoutBehaviorChanged(FlyoutBehavior behavior); } public interface IShellController : IPageController { event EventHandler StructureChanged; event EventHandler FlyoutItemsChanged; View FlyoutHeader { get; } View FlyoutFooter { get; } View FlyoutContent { get; } ImageSource FlyoutIcon { get; } void AddAppearanceObserver(IAppearanceObserver observer, Element pivot); void AddFlyoutBehaviorObserver(IFlyoutBehaviorObserver observer); void AppearanceChanged(Element source, bool appearanceSet); List<List<Element>> GenerateFlyoutGrouping(); ShellNavigationState GetNavigationState(ShellItem shellItem, ShellSection shellSection, ShellContent shellContent, bool includeStack = true); void OnFlyoutItemSelected(Element element); Task OnFlyoutItemSelectedAsync(Element element); bool ProposeNavigation(ShellNavigationSource source, ShellItem item, ShellSection shellSection, ShellContent shellContent, IReadOnlyList<Page> stack, bool canCancel); bool RemoveAppearanceObserver(IAppearanceObserver observer); bool RemoveFlyoutBehaviorObserver(IFlyoutBehaviorObserver observer); void UpdateCurrentState(ShellNavigationSource source); ReadOnlyCollection<ShellItem> GetItems(); event NotifyCollectionChangedEventHandler ItemsCollectionChanged; DataTemplate GetFlyoutItemDataTemplate(BindableObject bo); } }