diff --git a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
index f2b105c901..b2c138599e 100644
--- a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
+++ b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
@@ -85,7 +85,7 @@ namespace Avalonia.Controls.Generators
/// The index of the item to display.
///
/// If is true for an item, then this method
- /// only needs to be called a single time, otherwise this method should be called after the
+ /// must only be called a single time, otherwise this method must be called after the
/// container is created, and each subsequent time the container is recycled to display a
/// new item.
///
@@ -100,10 +100,11 @@ namespace Avalonia.Controls.Generators
/// The item being displayed.
/// The index of the item being displayed.
///
- /// This method should be called when a container has been fully prepared and added
+ /// This method must be called when a container has been fully prepared and added
/// to the logical and visual trees, but may be called before a layout pass has completed.
- /// It should be called regardless of the result of
- /// .
+ /// It must be called regardless of the result of
+ /// but if that method returned true then
+ /// must be called only a single time.
///
public void ItemContainerPrepared(Control container, object? item, int index) =>
_owner.ItemContainerPrepared(container, item, index);
@@ -122,6 +123,12 @@ namespace Avalonia.Controls.Generators
/// Undoes the effects of the method.
///
/// The container control.
+ ///
+ /// This method must be called when a container is unrealized. The container must have
+ /// already have been removed from the virtualizing panel's list of realized containers before
+ /// this method is called. This method must not be called if
+ /// returned true for the item.
+ ///
public void ClearItemContainer(Control container) => _owner.ClearItemContainer(container);
[Obsolete("Use ItemsControl.ContainerFromIndex")]