csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Avalonia.Collections;
|
|
using Avalonia.Interactivity;
|
|
|
|
namespace Avalonia.Diagnostics.ViewModels
|
|
{
|
|
internal class EventOwnerTreeNode : EventTreeNodeBase
|
|
{
|
|
public EventOwnerTreeNode(Type type, IEnumerable<RoutedEvent> events, EventsPageViewModel vm)
|
|
: base(null, type.Name)
|
|
{
|
|
Children = new AvaloniaList<EventTreeNodeBase>(events.OrderBy(e => e.Name)
|
|
.Select(e => new EventTreeNode(this, e, vm)));
|
|
IsExpanded = true;
|
|
}
|
|
|
|
public override bool? IsEnabled
|
|
{
|
|
get => base.IsEnabled;
|
|
set
|
|
{
|
|
if (base.IsEnabled != value)
|
|
{
|
|
base.IsEnabled = value;
|
|
|
|
if (_updateChildren && value != null)
|
|
{
|
|
foreach (var child in Children)
|
|
{
|
|
try
|
|
{
|
|
child._updateParent = false;
|
|
child.IsEnabled = value;
|
|
}
|
|
finally
|
|
{
|
|
child._updateParent = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|