Skip to content

Commit 2a03343

Browse files
authored
Merge pull request #1 from LakshmiNatarajan21/XAMARIN-37304
Sample updated
2 parents f3f9aad + 702fbf7 commit 2a03343

File tree

8 files changed

+50
-40
lines changed

8 files changed

+50
-40
lines changed
-14.3 KB
Loading

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin.Android/TreeViewXamarin.Android.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@
5050
</ItemGroup>
5151
<ItemGroup>
5252
<PackageReference Include="Syncfusion.Xamarin.Buttons">
53-
<Version>19.1.0.55</Version>
53+
<Version>19.1.0.57</Version>
5454
</PackageReference>
5555
<PackageReference Include="Syncfusion.Xamarin.SfTreeView">
56-
<Version>19.1.0.55</Version>
56+
<Version>19.1.0.57</Version>
5757
</PackageReference>
5858
<PackageReference Include="Xamarin.Forms" Version="4.5.0.617" />
5959
</ItemGroup>

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin.UWP/TreeViewXamarin.UWP.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,10 @@
144144
</ItemGroup>
145145
<ItemGroup>
146146
<PackageReference Include="Syncfusion.Xamarin.Buttons">
147-
<Version>19.1.0.55</Version>
147+
<Version>19.1.0.57</Version>
148148
</PackageReference>
149149
<PackageReference Include="Syncfusion.Xamarin.SfTreeView">
150-
<Version>19.1.0.55</Version>
150+
<Version>19.1.0.57</Version>
151151
</PackageReference>
152152
<PackageReference Include="Xamarin.Forms" Version="4.5.0.617" />
153153
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.5" />

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin.iOS/TreeViewXamarin.iOS.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,10 @@
149149
</ItemGroup>
150150
<ItemGroup>
151151
<PackageReference Include="Syncfusion.Xamarin.Buttons">
152-
<Version>19.1.0.55</Version>
152+
<Version>19.1.0.57</Version>
153153
</PackageReference>
154154
<PackageReference Include="Syncfusion.Xamarin.SfTreeView">
155-
<Version>19.1.0.55</Version>
155+
<Version>19.1.0.57</Version>
156156
</PackageReference>
157157
<PackageReference Include="Xamarin.Forms" Version="4.5.0.617" />
158158
</ItemGroup>

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin/Helper/TreeViewBehavior.cs

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,36 +45,46 @@ private void UpdateCheckBoxState()
4545
var checkedNodes = TreeView.GetCheckedNodes();
4646
foreach (var node in checkedNodes)
4747
{
48-
//Update child nodes based on parent's checked state.
4948
if (node.ParentNode == null && node.HasChildNodes)
5049
{
51-
setChildChecked(node);
50+
//Update child nodes based on parent's checked state.
51+
SetChildChecked(node);
5252
}
5353

54-
//Update parent node based on child's checked state.
55-
else if (node.ParentNode != null)
54+
else
5655
{
57-
if (node.ParentNode.ChildNodes.All(x => x.IsChecked == true))
58-
{
59-
node.ParentNode.IsChecked = true;
60-
}
61-
else node.ParentNode.IsChecked = null;
56+
//Update parent node based on child's checked state.
57+
SetParentChecked(node);
6258
}
63-
6459
}
6560
}
6661

67-
private void setChildChecked(TreeViewNode node)
62+
private void SetChildChecked(TreeViewNode node)
6863
{
6964
foreach (var child in node.ChildNodes)
7065
{
7166
child.IsChecked = true;
7267
if (child.HasChildNodes)
7368
{
74-
setChildChecked(child);
69+
SetChildChecked(child);
7570
}
7671
}
7772
}
73+
74+
private void SetParentChecked(TreeViewNode node)
75+
{
76+
if (node.ParentNode == null) return;
77+
78+
if (node.ParentNode.ChildNodes.All(x => x.IsChecked == true))
79+
node.ParentNode.IsChecked = true;
80+
81+
else node.ParentNode.IsChecked = null;
82+
83+
if(node.ParentNode != null)
84+
{
85+
SetParentChecked(node.ParentNode);
86+
}
87+
}
7888
#endregion
7989
}
8090
}

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin/TreeViewXamarin.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Syncfusion.Xamarin.Buttons" Version="19.1.0.55" />
20-
<PackageReference Include="Syncfusion.Xamarin.SfTreeView" Version="19.1.0.55" />
19+
<PackageReference Include="Syncfusion.Xamarin.Buttons" Version="19.1.0.57" />
20+
<PackageReference Include="Syncfusion.Xamarin.SfTreeView" Version="19.1.0.57" />
2121
<PackageReference Include="Xamarin.Forms" Version="4.5.0.617" />
2222
</ItemGroup>
2323
</Project>

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin/ViewModel/FileManagerViewModel.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ private ObservableCollection<Folder> GetFiles()
111111
checkedItems.Add(doc);
112112
checkedItems.Add(typeScript);
113113
checkedItems.Add(uiGuide);
114-
checkedItems.Add(stone);
115-
checkedItems.Add(pictures);
114+
checkedItems.Add(img1);
116115
checkedItems.Add(song);
117116

118117
return nodeImageInfo;

TreeViewXamarin/TreeViewXamarin/TreeViewXamarin/Views/MainPage.xaml

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,27 @@
1111
<local:FileManagerViewModel x:Name="viewModel"/>
1212
</ContentPage.BindingContext>
1313

14-
<treeView:SfTreeView x:Name="treeView"
14+
<StackLayout>
15+
<treeView:SfTreeView x:Name="treeView"
1516
ItemsSource="{Binding Folders}"
1617
ItemTemplateContextType="Node"
1718
AutoExpandMode="AllNodesExpanded"
1819
CheckedItems="{Binding CheckedItems}">
19-
<treeView:SfTreeView.Behaviors>
20-
<local:TreeViewBehavior/>
21-
</treeView:SfTreeView.Behaviors>
22-
<treeView:SfTreeView.HierarchyPropertyDescriptors>
23-
<TreeViewEngine:HierarchyPropertyDescriptor TargetType="{x:Type local:Folder}" ChildPropertyName="Files"/>
24-
<TreeViewEngine:HierarchyPropertyDescriptor TargetType="{x:Type local:File}" ChildPropertyName="SubFiles"/>
25-
</treeView:SfTreeView.HierarchyPropertyDescriptors>
20+
<treeView:SfTreeView.Behaviors>
21+
<local:TreeViewBehavior/>
22+
</treeView:SfTreeView.Behaviors>
23+
<treeView:SfTreeView.HierarchyPropertyDescriptors>
24+
<TreeViewEngine:HierarchyPropertyDescriptor TargetType="{x:Type local:Folder}" ChildPropertyName="Files"/>
25+
<TreeViewEngine:HierarchyPropertyDescriptor TargetType="{x:Type local:File}" ChildPropertyName="SubFiles"/>
26+
</treeView:SfTreeView.HierarchyPropertyDescriptors>
2627

27-
<treeView:SfTreeView.ItemTemplate>
28-
<DataTemplate>
29-
<Grid Padding="5">
30-
<SfButtons:SfCheckBox x:Name="CheckBox" Text="{Binding Content.FileName}" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
31-
</Grid>
32-
</DataTemplate>
33-
</treeView:SfTreeView.ItemTemplate>
34-
</treeView:SfTreeView>
35-
36-
</ContentPage>
28+
<treeView:SfTreeView.ItemTemplate>
29+
<DataTemplate>
30+
<Grid Padding="5">
31+
<SfButtons:SfCheckBox x:Name="CheckBox" Text="{Binding Content.FileName}" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
32+
</Grid>
33+
</DataTemplate>
34+
</treeView:SfTreeView.ItemTemplate>
35+
</treeView:SfTreeView>
36+
</StackLayout>
37+
</ContentPage>

0 commit comments

Comments
 (0)