// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Windows.Forms.PropertyGridInternal; namespace System.Windows.Forms; public partial class PropertyGrid { /// <summary> /// Service provider that searches the <see cref="ActiveDesigner"/>, then the <see cref="PropertyGridView"/>, /// then finally the <see cref="Site"/> for requested services. /// </summary> private class PropertyGridServiceProvider : IServiceProvider { private readonly PropertyGrid _ownerPropertyGrid; public PropertyGridServiceProvider(PropertyGrid ownerPropertyGrid) { _ownerPropertyGrid = ownerPropertyGrid; } public object? GetService(Type serviceType) { object? service = _ownerPropertyGrid.ActiveDesigner?.GetService(serviceType); service ??= _ownerPropertyGrid._gridView.GetService(serviceType); service ??= _ownerPropertyGrid.Site?.GetService(serviceType); return service; } } } |