EventChainLink.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright (c) The Avalonia Project. All rights reserved.
  2. // Licensed under the MIT license. See licence.md file in the project root for full license information.
  3. using System;
  4. using Avalonia.Interactivity;
  5. namespace Avalonia.Diagnostics.Models
  6. {
  7. internal class EventChainLink
  8. {
  9. public EventChainLink(object handler, bool handled, RoutingStrategies route)
  10. {
  11. Contract.Requires<ArgumentNullException>(handler != null);
  12. Handler = handler;
  13. Handled = handled;
  14. Route = route;
  15. }
  16. public object Handler { get; }
  17. public string HandlerName
  18. {
  19. get
  20. {
  21. if (Handler is INamed named && !string.IsNullOrEmpty(named.Name))
  22. {
  23. return named.Name + " (" + Handler.GetType().Name + ")";
  24. }
  25. return Handler.GetType().Name;
  26. }
  27. }
  28. public bool Handled { get; }
  29. public RoutingStrategies Route { get; }
  30. }
  31. }