@@ -42,11 +42,14 @@ public void Load(IEnumerable<TData> treeDatas)
42
42
var collapsedFolders = new HashSet < string > ( GetCollapsedFolders ( ) ) ;
43
43
var selectedNodePath = SelectedNodePath ;
44
44
var checkedFiles = new HashSet < string > ( GetCheckedFiles ( ) ) ;
45
+ var pathSeparator = PathSeparator ;
45
46
46
47
Clear ( ) ;
47
48
48
49
var displayRootLevel = DisplayRootNode ? 1 : 0 ;
49
50
51
+ var isCheckable = IsCheckable ;
52
+
50
53
var isSelected = IsSelectable && selectedNodePath != null && Title == selectedNodePath ;
51
54
AddNode ( Title , Title , - 1 + displayRootLevel , true , false , false , false , isSelected , false , null ) ;
52
55
@@ -57,12 +60,12 @@ public void Load(IEnumerable<TData> treeDatas)
57
60
58
61
foreach ( var treeData in treeDatas )
59
62
{
60
- var parts = treeData . Path . Split ( new [ ] { PathSeparator } , StringSplitOptions . None ) ;
63
+ var parts = treeData . Path . Split ( new [ ] { pathSeparator } , StringSplitOptions . None ) ;
61
64
for ( var i = 0 ; i < parts . Length ; i ++ )
62
65
{
63
66
var label = parts [ i ] ;
64
67
var level = i + 1 ;
65
- var nodePath = String . Join ( PathSeparator , parts , 0 , level ) ;
68
+ var nodePath = String . Join ( pathSeparator , parts , 0 , level ) ;
66
69
var isFolder = i < parts . Length - 1 ;
67
70
var alreadyExists = folders . Contains ( nodePath ) ;
68
71
if ( ! alreadyExists )
@@ -104,7 +107,7 @@ public void Load(IEnumerable<TData> treeDatas)
104
107
{
105
108
isActive = treeData . IsActive ;
106
109
treeNodeTreeData = treeData ;
107
- isChecked = checkedFiles . Contains ( nodePath ) ;
110
+ isChecked = isCheckable && checkedFiles . Contains ( nodePath ) ;
108
111
}
109
112
110
113
isSelected = selectedNodePath != null && nodePath == selectedNodePath ;
@@ -114,19 +117,20 @@ public void Load(IEnumerable<TData> treeDatas)
114
117
}
115
118
}
116
119
117
- if ( IsCheckable && checkedFiles . Any ( ) )
120
+ if ( isCheckable && checkedFiles . Any ( ) )
118
121
{
119
- for ( var index = Nodes . Count - 1 ; index >= 0 ; index -- )
122
+ var nodes = Nodes ;
123
+ for ( var index = nodes . Count - 1 ; index >= 0 ; index -- )
120
124
{
121
- var node = Nodes [ index ] ;
125
+ var node = nodes [ index ] ;
122
126
if ( node . Level >= 0 && node . IsFolder )
123
127
{
124
128
bool ? anyChecked = null ;
125
129
bool ? allChecked = null ;
126
130
127
- for ( var i = index + 1 ; i < Nodes . Count ; i ++ )
131
+ for ( var i = index + 1 ; i < nodes . Count ; i ++ )
128
132
{
129
- var nodeCompare = Nodes [ i ] ;
133
+ var nodeCompare = nodes [ i ] ;
130
134
if ( nodeCompare . Level < node . Level + 1 )
131
135
{
132
136
break ;
0 commit comments