/* Based on Windows UI Library Copyright(c) Microsoft Corporation.All rights reserved. */ using System.Collections; using System.Windows.Controls; // ReSharper disable once CheckNamespace namespace WPFluent.Controls; /// /// Represents the container for an item in a NavigationView control. /// public interface INavigationViewItem { /// /// Add / Remove ClickEvent handler. /// [Category("Behavior")] event RoutedEventHandler Click; internal bool IsMenuElement { get; set; } /// /// Correctly activates /// void Activate(INavigationView navigationView); /// /// Correctly deactivates /// void Deactivate(INavigationView navigationView); /// /// Gets or sets the content /// object Content { get; set; } /// /// Gets or sets the icon displayed in the MenuItem object. /// IconElement? Icon { get; set; } /// /// Gets the unique identifier that allows the item to be located in the navigation. /// string Id { get; } InfoBadge? InfoBadge { get; set; } /// /// Gets a value indicating whether the current element is active. /// bool IsActive { get; } /// /// Gets or sets a value indicating whether the sub- are expanded. /// bool IsExpanded { get; internal set; } /// /// Gets the collection of menu items displayed in the NavigationView. /// IList MenuItems { get; } /// /// Gets or sets an object source used to generate the content of the NavigationView menu. /// object? MenuItemsSource { get; set; } /// /// Gets or sets the caching characteristics for a page involved in a navigation. /// NavigationCacheMode NavigationCacheMode { get; set; } /// /// Gets or sets the parent if it's in collection /// INavigationViewItem? NavigationViewItemParent { get; internal set; } /// /// Gets or sets the unique tag used by the parent navigation system for the purpose of searching and navigating. /// string TargetPageTag { get; set; } /// /// Gets or sets the type of the page to be navigated. (Should be derived from ). /// Type? TargetPageType { get; set; } /// /// Gets or sets the template property /// ControlTemplate? Template { get; set; } }