@@ -50,37 +50,36 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
50
50
. AddClass ( "visible" , item . HasChildren || item . Items . Count > 0 )
51
51
. AddClass ( NodeIcon , ! item . IsExpand )
52
52
. AddClass ( ExpandNodeIcon , item . IsExpand )
53
- . AddClass ( "disabled" , ! CanExpandWhenDisabled && GetItemDisabledState ( item ) )
53
+ . AddClass ( "disabled" , IsDisabled || ( ! CanExpandWhenDisabled && item . IsDisabled ) )
54
54
. Build ( ) ;
55
55
56
56
private string ? NodeLoadingClassString => CssBuilder . Default ( "node-icon node-loading" )
57
57
. AddClass ( LoadingIcon )
58
58
. Build ( ) ;
59
59
60
- /// <summary>
61
- /// 获得/设置 当前行样式
62
- /// </summary>
63
- /// <param name="item"></param>
64
- /// <returns></returns>
65
- private string ? GetItemClassString ( TreeViewItem < TItem > item ) => CssBuilder . Default ( "tree-item" )
60
+ private string ? GetContentClassString ( TreeViewItem < TItem > item ) => CssBuilder . Default ( "tree-content" )
66
61
. AddClass ( "active" , ActiveItem == item )
67
- . AddClass ( "disabled" , ! CanExpandWhenDisabled && GetItemDisabledState ( item ) )
68
- . Build ( ) ;
69
-
70
- /// <summary>
71
- /// 获得/设置 Tree 样式
72
- /// </summary>
73
- /// <param name="item"></param>
74
- /// <returns></returns>
75
- private static string ? GetTreeClassString ( TreeViewItem < TItem > item ) => CssBuilder . Default ( "tree-ul" )
76
- . AddClass ( "show" , item . IsExpand )
77
62
. Build ( ) ;
78
63
79
64
private string ? GetNodeClassString ( TreeViewItem < TItem > item ) => CssBuilder . Default ( "tree-node" )
80
65
. AddClass ( "disabled" , GetItemDisabledState ( item ) )
81
66
. Build ( ) ;
82
67
83
- private bool TriggerNodeArrow ( TreeViewItem < TItem > item ) => ( CanExpandWhenDisabled || ! GetItemDisabledState ( item ) ) && ( item . HasChildren || item . Items . Count > 0 ) ;
68
+ private bool CanTriggerClickNode ( TreeViewItem < TItem > item )
69
+ {
70
+ // 返回 false 时禁止触发 OnClick
71
+ if ( IsDisabled )
72
+ {
73
+ return false ;
74
+ }
75
+
76
+ if ( CanExpandWhenDisabled )
77
+ {
78
+ return true ;
79
+ }
80
+
81
+ return ! item . IsDisabled ;
82
+ }
84
83
85
84
private bool TriggerNodeLabel ( TreeViewItem < TItem > item ) => ! GetItemDisabledState ( item ) ;
86
85
@@ -592,7 +591,7 @@ private async Task<IEnumerable<IExpandableNode<TItem>>> GetChildrenRowAsync(Tree
592
591
private async Task OnClick ( TreeViewItem < TItem > item )
593
592
{
594
593
ActiveItem = item ;
595
- if ( ClickToggleNode && TriggerNodeArrow ( item ) )
594
+ if ( ClickToggleNode && CanTriggerClickNode ( item ) )
596
595
{
597
596
await OnToggleNodeAsync ( item ) ;
598
597
}
@@ -874,20 +873,15 @@ private List<TreeViewItem<TItem>> GetTreeRows(List<TreeViewItem<TItem>> items)
874
873
}
875
874
}
876
875
877
- private string ? GetTreeRowStyle ( TreeViewItem < TItem > item )
876
+ private static string ? GetTreeRowStyle ( TreeViewItem < TItem > item )
878
877
{
879
- string ? style = null ;
880
- if ( IsVirtualize )
878
+ var level = 0 ;
879
+ var parent = item . Parent ;
880
+ while ( parent != null )
881
881
{
882
- var level = 0 ;
883
- var parent = item . Parent ;
884
- while ( parent != null )
885
- {
886
- level ++ ;
887
- parent = parent . Parent ;
888
- }
889
- style = $ "--bb-tree-view-level: { level } ;";
882
+ level ++ ;
883
+ parent = parent . Parent ;
890
884
}
891
- return style ;
885
+ return $ "--bb-tree-view-level: { level } ;" ;
892
886
}
893
887
}
0 commit comments