Browse Source

Add ItemsControl.PreparingContainer event (#14153)

pull/17257/head
Tom Edwards 2 years ago
committed by GitHub
parent
commit
353ad7dbd4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 11
      src/Avalonia.Controls/ItemsControl.cs

11
src/Avalonia.Controls/ItemsControl.cs

@ -212,6 +212,15 @@ namespace Avalonia.Controls
remove => _childIndexChanged -= value; remove => _childIndexChanged -= value;
} }
/// <summary>
/// Occurs immediately before a container is prepared for use.
/// </summary>
/// <remarks>
/// The prepared element might be newly created or an existing container that is being re-
/// used.
/// </remarks>
public event EventHandler<ContainerPreparedEventArgs>? PreparingContainer;
/// <summary> /// <summary>
/// Occurs each time a container is prepared for use. /// Occurs each time a container is prepared for use.
/// </summary> /// </summary>
@ -702,6 +711,8 @@ namespace Avalonia.Controls
internal void PrepareItemContainer(Control container, object? item, int index) internal void PrepareItemContainer(Control container, object? item, int index)
{ {
PreparingContainer?.Invoke(this, new(container, index));
// If the container has no theme set, or we've already applied our ItemContainerTheme // If the container has no theme set, or we've already applied our ItemContainerTheme
// (and it hasn't changed since) then we're in control of the container's Theme and may // (and it hasn't changed since) then we're in control of the container's Theme and may
// need to update it. // need to update it.

Loading…
Cancel
Save