@@ -876,43 +876,70 @@ public async Task Esc_Ok()
876876 [ Fact ]
877877 public async Task KeyBoard_Ok ( )
878878 {
879- var items = TreeFoo . GetTreeItems ( ) ;
879+ List < TreeFoo > data =
880+ [
881+ new ( ) { Text = "1010" , Id = "1010" } ,
882+ new ( ) { Text = "1020" , Id = "1020" } ,
883+ new ( ) { Text = "1030" , Id = "1030" } ,
884+
885+ new ( ) { Text = "1020-01" , Id = "1020-01" , ParentId = "1020" } ,
886+ new ( ) { Text = "1020-02" , Id = "1020-02" , ParentId = "1020" } ,
887+
888+ new ( ) { Text = "1020-02-01" , Id = "1020-02-01" , ParentId = "1020-02" } ,
889+ new ( ) { Text = "1020-02-02" , Id = "1020-02-02" , ParentId = "1020-02" } ,
890+
891+ new ( ) { Text = "1020-02-02-01" , Id = "1020-02-02-01" , ParentId = "1020-02-02" } ,
892+ new ( ) { Text = "1020-02-02-02" , Id = "1020-02-02-02" , ParentId = "1020-02-02" }
893+ ] ;
894+
895+ var items = TreeFoo . CascadingTree ( data ) ;
880896 items [ 0 ] . IsActive = true ;
881897 items [ 1 ] . IsExpand = true ;
882898 items [ 1 ] . Items [ 1 ] . IsExpand = true ;
883899 items [ 1 ] . Items [ 1 ] . Items [ 1 ] . IsExpand = true ;
900+
901+ var activeItemText = "1010" ;
884902 var cut = Context . RenderComponent < TreeView < TreeFoo > > ( pb =>
885903 {
886904 pb . Add ( a => a . EnableKeyboardArrowUpDown , true ) ;
887905 pb . Add ( a => a . Items , items ) ;
906+ pb . Add ( a => a . OnTreeItemClick , new Func < TreeViewItem < TreeFoo > , Task > ( treeViewItem =>
907+ {
908+ activeItemText = treeViewItem . Text ;
909+ return Task . CompletedTask ;
910+ } ) ) ;
888911 } ) ;
889912 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
890913 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
891914 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
915+
892916 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
893917 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
894918 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
919+
895920 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
896921 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
897922 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
923+
898924 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
899925 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
900- await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowDown" ) ) ;
901-
926+ Assert . Equal ( "1030" , activeItemText ) ;
902927
903-
904- await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
905928 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
906929 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
907930 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
931+
908932 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
909933 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
910934 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
935+
911936 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
912937 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
913938 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
939+
914940 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
915941 await cut . InvokeAsync ( ( ) => cut . Instance . TriggerKeyDown ( "ArrowUp" ) ) ;
942+ Assert . Equal ( "1010" , activeItemText ) ;
916943 }
917944
918945 class MockTree < TItem > : TreeView < TItem > where TItem : class
0 commit comments