1- # How to edit an item in WinUI Treeview?
1+ # How to edit an item in WinUI Treeview (SfTreeView) ?
22
33## About the sample
44
@@ -12,41 +12,40 @@ It is necessary to define [EditTemplate](https://help.syncfusion.com/cr/winui/Sy
1212
1313``` XML
1414
15- <treeView : SfTreeView x : Name =" treeView"
16- Width =" 400"
17- Height =" 500"
18- AllowEditing =" True"
19- AutoExpandMode =" AllNodes"
20- ChildPropertyName =" Childs"
21- BorderBrush =" LightGray"
22- IsAnimationEnabled =" True"
23- BorderThickness =" 1"
24- FullRowSelect =" True"
25- ItemsSource =" {Binding Nodes1}" >
26- <treeView : SfTreeView .ItemTemplate>
27- <DataTemplate >
28- <StackPanel Orientation =" Horizontal" >
29- <ContentPresenter Width =" 20"
30- Height =" 20"
31- HorizontalAlignment =" Stretch"
32- VerticalAlignment =" Center"
33- ContentTemplate =" {Binding ImageTemplate}" />
34- <TextBlock
35- Margin =" 5"
36- VerticalAlignment =" Center"
37- Text =" {Binding Header}" />
38- </StackPanel >
39- </DataTemplate >
40- </treeView : SfTreeView .ItemTemplate>
41- <treeView : SfTreeView .EditTemplate>
42- <DataTemplate >
43- <TextBox VerticalAlignment =" Center"
44- Height =" {Binding Path=ItemHeight,ElementName=treeView}"
45- BorderThickness =" 1"
46- Text =" {Binding Header,Mode=TwoWay}" />
47- </DataTemplate >
48- </treeView : SfTreeView .EditTemplate>
49- </treeView : SfTreeView >
15+ <treeView : SfTreeView x : Name =" treeView"
16+ Width =" 400"
17+ Height =" 500"
18+ AllowEditing =" True"
19+ AutoExpandMode =" AllNodes"
20+ ChildPropertyName =" Childs"
21+ BorderBrush =" LightGray"
22+ IsAnimationEnabled =" True"
23+ BorderThickness =" 1"
24+ FullRowSelect =" True"
25+ ItemsSource =" {Binding Nodes1}" >
26+ <treeView : SfTreeView .ItemTemplate>
27+ <DataTemplate >
28+ <StackPanel Orientation =" Horizontal" >
29+ <ContentPresenter Width =" 20"
30+ Height =" 20"
31+ HorizontalAlignment =" Stretch"
32+ VerticalAlignment =" Center"
33+ ContentTemplate =" {Binding ImageTemplate}" />
34+ <TextBlock Margin =" 5"
35+ VerticalAlignment =" Center"
36+ Text =" {Binding Header}" />
37+ </StackPanel >
38+ </DataTemplate >
39+ </treeView : SfTreeView .ItemTemplate>
40+ <treeView : SfTreeView .EditTemplate>
41+ <DataTemplate >
42+ <TextBox VerticalAlignment =" Center"
43+ Height =" {Binding Path=ItemHeight,ElementName=treeView}"
44+ BorderThickness =" 1"
45+ Text =" {Binding Header,Mode=TwoWay}" />
46+ </DataTemplate >
47+ </treeView : SfTreeView .EditTemplate>
48+ </treeView : SfTreeView >
5049
5150```
5251
@@ -111,119 +110,118 @@ The user can take a backup of existing data of a node in the [BeginEdit](https:/
111110The below code snippet explains the simple implementation of IEditableObject interface to rollback the changes.
112111
113112``` C#
114-
115113public class EditingModel : INotifyPropertyChanged , IEditableObject
116114{
117- #region Fields
115+ #region Fields
118116
119- private string name ;
120- internal EditingModel backUpData ;
121- private EditingModel currentData ;
117+ private string name ;
118+ internal EditingModel backUpData ;
119+ private EditingModel currentData ;
122120
123- private string header = string .Empty ;
124- private bool isexpanded = true ;
125- private DataTemplate imageTemplate ;
126- private ObservableCollection <EditingModel > childs = null ;
121+ private string header = string .Empty ;
122+ private bool isexpanded = true ;
123+ private DataTemplate imageTemplate ;
124+ private ObservableCollection <EditingModel > childs = null ;
127125
128- #endregion
126+ #endregion
129127
130- #region Constructor
128+ #region Constructor
131129
132- public EditingModel ()
133- {
134-
135- }
130+ public EditingModel ()
131+ {
136132
137- public EditingModel (string name ):base ()
138- {
139- Childs = new ObservableCollection <EditingModel >();
140- this .currentData = new EditingModel ();
141- this .currentData .name = name ;
142- }
133+ }
143134
144- #endregion
135+ public EditingModel (string name ) : base ()
136+ {
137+ Childs = new ObservableCollection <EditingModel >();
138+ this .currentData = new EditingModel ();
139+ this .currentData .name = name ;
140+ }
145141
146- #region Properties
147- public string Header
142+ #endregion
143+
144+ #region Properties
145+ public string Header
146+ {
147+ get
148+ {
149+ return currentData .name ;
150+ }
151+ set
148152 {
149- get
150- {
151- return currentData .name ;
152- }
153- set
154- {
155- currentData .name = value ;
156- this .RaisePropertyChanged (" Header" );
157- }
153+ currentData .name = value ;
154+ this .RaisePropertyChanged (" Header" );
158155 }
156+ }
159157
160- public bool IsExpanded
158+ public bool IsExpanded
159+ {
160+ get
161161 {
162- get
163- {
164- return isexpanded ;
165- }
166- set
167- {
168- isexpanded = value ;
169- this .RaisePropertyChanged (" IsExpanded" );
170- }
162+ return isexpanded ;
171163 }
172-
173- public DataTemplate ImageTemplate
164+ set
174165 {
175- get { return imageTemplate ; }
176- set { imageTemplate = value ; }
166+ isexpanded = value ;
167+ this . RaisePropertyChanged ( " IsExpanded " );
177168 }
169+ }
178170
179- public ObservableCollection <EditingModel > Childs
171+ public DataTemplate ImageTemplate
172+ {
173+ get { return imageTemplate ; }
174+ set { imageTemplate = value ; }
175+ }
176+
177+ public ObservableCollection <EditingModel > Childs
178+ {
179+ get
180+ {
181+ return childs ;
182+ }
183+ set
180184 {
181- get
182- {
183- return childs ;
184- }
185- set
186- {
187- childs = value ;
188- this .RaisePropertyChanged (" Childs" );
189- }
185+ childs = value ;
186+ this .RaisePropertyChanged (" Childs" );
190187 }
188+ }
191189
192- #endregion
190+ #endregion
193191
194- #region INotifyPropertyChanged
192+ #region INotifyPropertyChanged
195193
196- public event PropertyChangedEventHandler PropertyChanged ;
194+ public event PropertyChangedEventHandler PropertyChanged ;
197195
198- public void RaisePropertyChanged (string _PropertyName )
196+ public void RaisePropertyChanged (string _PropertyName )
197+ {
198+ if (PropertyChanged != null )
199199 {
200- if (PropertyChanged != null )
201- {
202- PropertyChanged (this , new PropertyChangedEventArgs (_PropertyName ));
203- }
200+ PropertyChanged (this , new PropertyChangedEventArgs (_PropertyName ));
204201 }
202+ }
205203
206- #endregion
204+ #endregion
207205
208- #region IEditableObject
206+ #region IEditableObject
209207
210- public void BeginEdit ()
211- {
212- backUpData = new EditingModel ();
213- backUpData .name = this .currentData .name ;
214- }
215-
216- public void EndEdit ()
217- {
218-
219- }
208+ public void BeginEdit ()
209+ {
210+ backUpData = new EditingModel ();
211+ backUpData .name = this .currentData .name ;
212+ }
220213
221- public void CancelEdit ()
222- {
223- this .currentData = backUpData ;
224- }
225-
226- #endregion
214+ public void EndEdit ()
215+ {
216+
217+ }
218+
219+ public void CancelEdit ()
220+ {
221+ this .currentData = backUpData ;
222+ }
223+
224+ #endregion
227225}
228226
229227```
0 commit comments