@ -25,9 +25,9 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = CreateTestTreeData ( ) ,
Items = CreateTestTreeData ( ) ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
Assert . Equal ( new [ ] { "Root" } , ExtractItemHeader ( target , 0 ) ) ;
Assert . Equal ( new [ ] { "Root" } , ExtractItemHeader ( target , 0 ) ) ;
@ -69,9 +69,9 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = CreateTestTreeData ( ) ,
Items = CreateTestTreeData ( ) ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
var container = ( TreeViewItem ) target . ItemContainerGenerator . Containers . Single ( ) . ContainerControl ;
var container = ( TreeViewItem ) target . ItemContainerGenerator . Containers . Single ( ) . ContainerControl ;
@ -87,7 +87,6 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = tree ,
Items = tree ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
// For TreeViewItem to find its parent TreeView, OnAttachedToLogicalTree needs
// For TreeViewItem to find its parent TreeView, OnAttachedToLogicalTree needs
@ -95,6 +94,7 @@ namespace Avalonia.Controls.UnitTests
var root = new TestRoot ( ) ;
var root = new TestRoot ( ) ;
root . Child = target ;
root . Child = target ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
var container = target . ItemContainerGenerator . Index . ContainerFromItem (
var container = target . ItemContainerGenerator . Index . ContainerFromItem (
@ -116,11 +116,12 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = tree ,
Items = tree ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
var visualRoot = new TestRoot ( ) ;
var visualRoot = new TestRoot ( ) ;
visualRoot . Child = target ;
visualRoot . Child = target ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
var item = tree [ 0 ] . Children [ 1 ] . Children [ 0 ] ;
var item = tree [ 0 ] . Children [ 1 ] . Children [ 0 ] ;
@ -146,11 +147,12 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = tree ,
Items = tree ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
var visualRoot = new TestRoot ( ) ;
var visualRoot = new TestRoot ( ) ;
visualRoot . Child = target ;
visualRoot . Child = target ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
var item = tree [ 0 ] . Children [ 1 ] . Children [ 0 ] ;
var item = tree [ 0 ] . Children [ 1 ] . Children [ 0 ] ;
@ -191,12 +193,13 @@ namespace Avalonia.Controls.UnitTests
var target = new TreeView
var target = new TreeView
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
DataTemplates = CreateNodeDataTemplate ( ) ,
Items = tree ,
Items = tree ,
} ;
} ;
var root = new TestRoot ( ) ;
var root = new TestRoot ( ) ;
root . Child = target ;
root . Child = target ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
Assert . Equal ( 5 , target . ItemContainerGenerator . Index . Items . Count ( ) ) ;
Assert . Equal ( 5 , target . ItemContainerGenerator . Index . Items . Count ( ) ) ;
@ -221,7 +224,7 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
DataContext = "Base" ,
DataContext = "Base" ,
DataTemplates = new DataTemplates
DataTemplates =
{
{
new FuncDataTemplate < Node > ( x = > new Button { Content = x } )
new FuncDataTemplate < Node > ( x = > new Button { Content = x } )
} ,
} ,
@ -291,9 +294,9 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = data ,
Items = data ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
Assert . Equal ( new [ ] { "Root" } , ExtractItemHeader ( target , 0 ) ) ;
Assert . Equal ( new [ ] { "Root" } , ExtractItemHeader ( target , 0 ) ) ;
@ -328,7 +331,6 @@ namespace Avalonia.Controls.UnitTests
{
{
Template = CreateTreeViewTemplate ( ) ,
Template = CreateTreeViewTemplate ( ) ,
Items = data ,
Items = data ,
DataTemplates = CreateNodeDataTemplate ( ) ,
} ;
} ;
var button = new Button ( ) ;
var button = new Button ( ) ;
@ -341,6 +343,7 @@ namespace Avalonia.Controls.UnitTests
}
}
} ;
} ;
CreateNodeDataTemplate ( target ) ;
ApplyTemplates ( target ) ;
ApplyTemplates ( target ) ;
var item = data [ 0 ] . Children [ 0 ] ;
var item = data [ 0 ] . Children [ 0 ] ;
@ -411,12 +414,9 @@ namespace Avalonia.Controls.UnitTests
} ;
} ;
}
}
private DataTemplates CreateNodeDataTemplate ( )
private void CreateNodeDataTemplate ( IControl control )
{
{
return new DataTemplates
control . DataTemplates . Add ( new TestTreeDataTemplate ( ) ) ;
{
new TestTreeDataTemplate ( )
} ;
}
}
private IControlTemplate CreateTreeViewTemplate ( )
private IControlTemplate CreateTreeViewTemplate ( )