From 657d74961f69b3098d2c8f68bae1f7d318ad7d36 Mon Sep 17 00:00:00 2001 From: Sreemon Premkumar M Date: Fri, 22 Aug 2025 17:26:13 +0530 Subject: [PATCH 1/2] ES-975464 - Resolve the ReadMe issue in this sample repository --- README.md | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3553928..05c679d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,114 @@ -# How to work with check boxes in bound mode in wpf treeview? -This repository describes how to work with check boxes in bound mode in wpf treeview +# How to work with check boxes in bound mode in WPF TreeView + +This repository describes how to work with check boxes in bound mode in [WPF TreeView](https://www.syncfusion.com/wpf-controls/treeview) (SfTreeView). + +When you are populating treeview nodes from [ItemsSource](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_ItemsSource), then you can get or set the checked items by using [CheckedItems](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_CheckedItems) property. + +SfTreeView supports to check multiple items through binding the `CheckedItems` property from view model with `ObservableCollection` type. + +#### XAML + +``` xml + + + + + + + + + + +``` + +#### C# + +``` csharp +public class ViewModel : NotificationObject +{ + public ObservableCollection Items { get; set; } + + private ObservableCollection checkedStates; + + public ObservableCollection CheckedStates + { + get { return checkedStates; } + set { checkedStates = value; } + } + + public ViewModel() + { + Items = new ObservableCollection(); + checkedStates = new ObservableCollection(); + + var country1 = new Model { State = "Australia" }; + var country2 = new Model { State = "Brazil" }; + var country3 = new Model { State = "China" }; + var country4 = new Model { State = "France" }; + + var aus_state1 = new Model { State = "New South Wales" }; + var aus_state2 = new Model { State = "Victoria" }; + var aus_state3 = new Model { State = "South Autralia" }; + var aus_state4 = new Model { State = "Western Australia" }; + + var brazil_state1 = new Model { State = "Parana" }; + var brazil_state2 = new Model { State = "Ceara" }; + var brazil_state3 = new Model { State = "Acre" }; + + var china_state1 = new Model { State = "Guangzhou" }; + var china_state2 = new Model { State = "Shanghai" }; + var china_state3 = new Model { State = "Beijing" }; + var china_state4 = new Model { State = "Shantou" }; + + var france_state1 = new Model { State = "Pays de la Loire" }; + var france_state2 = new Model { State = "Aquitaine" }; + var france_state3 = new Model { State = "Brittany" }; + var france_state4 = new Model { State = "Lorraine" }; + + country1.Models.Add(aus_state1); + country1.Models.Add(aus_state2); + country1.Models.Add(aus_state3); + country1.Models.Add(aus_state4); + + country2.Models.Add(brazil_state1); + country2.Models.Add(brazil_state2); + country2.Models.Add(brazil_state3); + + country3.Models.Add(china_state1); + country3.Models.Add(china_state2); + country3.Models.Add(china_state3); + country3.Models.Add(china_state4); + + country4.Models.Add(france_state1); + country4.Models.Add(france_state2); + country4.Models.Add(france_state3); + country4.Models.Add(france_state4); + + Items.Add(country1); + Items.Add(country2); + Items.Add(country3); + Items.Add(country4); + + checkedStates.Add(aus_state1); + checkedStates.Add(aus_state2); + checkedStates.Add(country2); + checkedStates.Add(country3); + } +} +``` From c4df026a00aeb5935416d5c28562e7c2e7260610 Mon Sep 17 00:00:00 2001 From: SreemonPremkumarMuthukrishnan Date: Thu, 11 Dec 2025 00:19:21 +0530 Subject: [PATCH 2/2] ES-975464 - added the image and notes --- README.md | 8 +++++++- TreeViewWithCheckBoxes.png | Bin 0 -> 25244 bytes 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 TreeViewWithCheckBoxes.png diff --git a/README.md b/README.md index 05c679d..41b8e5c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# How to work with check boxes in bound mode in WPF TreeView +# How to Work With Check Boxes in Bound Mode in WPF TreeView? This repository describes how to work with check boxes in bound mode in [WPF TreeView](https://www.syncfusion.com/wpf-controls/treeview) (SfTreeView). @@ -6,6 +6,10 @@ When you are populating treeview nodes from [ItemsSource](https://help.syncfusio SfTreeView supports to check multiple items through binding the `CheckedItems` property from view model with `ObservableCollection` type. +**Note:** Set [ItemTemplateDataContextType](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_ItemTemplateDataContextType) as Node to bind the TreeViewNode.IsChecked property to CheckBox in ItemTemplate. + +**Note:** TreeView process and sets [TreeViewNode.IsChecked](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.TreeView.Engine.TreeViewNode.html#Syncfusion_UI_Xaml_TreeView_Engine_TreeViewNode_IsChecked) based on CheckedItems only when you are binding ItemsSource. + #### XAML ``` xml @@ -112,3 +116,5 @@ public class ViewModel : NotificationObject } } ``` + +![Showing TreeView with check boxes in bound mode](TreeViewWithCheckBoxes.png) \ No newline at end of file diff --git a/TreeViewWithCheckBoxes.png b/TreeViewWithCheckBoxes.png new file mode 100644 index 0000000000000000000000000000000000000000..0c84b9349346193e20b064087d6a0bf4fad25a28 GIT binary patch literal 25244 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 BBai?9 literal 0 HcmV?d00001