|
@@ -90,8 +90,20 @@ namespace Avalonia.Controls
|
|
|
|
|
|
internal TreeView? TreeViewOwner => _treeView;
|
|
|
|
|
|
- protected internal override Control CreateContainerForItemOverride() => new TreeViewItem();
|
|
|
- protected internal override bool IsItemItsOwnContainerOverride(Control item) => item is TreeViewItem;
|
|
|
+ protected internal override Control CreateContainerForItemOverride()
|
|
|
+ {
|
|
|
+ return EnsureTreeView().CreateContainerForItemOverride();
|
|
|
+ }
|
|
|
+
|
|
|
+ protected internal override bool IsItemItsOwnContainerOverride(Control item)
|
|
|
+ {
|
|
|
+ return EnsureTreeView().IsItemItsOwnContainerOverride(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected internal override void PrepareContainerForItemOverride(Control container, object? item, int index)
|
|
|
+ {
|
|
|
+ EnsureTreeView().PrepareContainerForItemOverride(container, item, index);
|
|
|
+ }
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e)
|
|
@@ -283,6 +295,9 @@ namespace Avalonia.Controls
|
|
|
return logical != null ? result : @default;
|
|
|
}
|
|
|
|
|
|
+ private TreeView EnsureTreeView() => _treeView ??
|
|
|
+ throw new InvalidOperationException("The TreeViewItem is not part of a TreeView.");
|
|
|
+
|
|
|
private void HeaderDoubleTapped(object? sender, TappedEventArgs e)
|
|
|
{
|
|
|
OnHeaderDoubleTapped(e);
|