diff --git a/Terminal.Gui/Views/TreeView.cs b/Terminal.Gui/Views/TreeView.cs
index 4d1f7b2c7..e138b80d4 100644
--- a/Terminal.Gui/Views/TreeView.cs
+++ b/Terminal.Gui/Views/TreeView.cs
@@ -38,13 +38,13 @@ namespace Terminal.Gui {
/// Children of the current node
///
///
- public IList Children {get;set;} = new List();
+ public virtual IList Children {get;set;} = new List();
///
/// Text to display in tree node for current entry
///
///
- public string Text {get;set;}
+ public virtual string Text {get;set;}
///
/// Optionally allows you to store some custom data/class here.
@@ -730,7 +730,7 @@ namespace Terminal.Gui {
/// Raises the event
///
///
- protected void OnObjectActivated(ObjectActivatedEventArgs e)
+ protected virtual void OnObjectActivated(ObjectActivatedEventArgs e)
{
ObjectActivated?.Invoke(e);
}
diff --git a/UICatalog/Scenarios/TreeUseCases.cs b/UICatalog/Scenarios/TreeUseCases.cs
index cd09aedc4..8891ed785 100644
--- a/UICatalog/Scenarios/TreeUseCases.cs
+++ b/UICatalog/Scenarios/TreeUseCases.cs
@@ -45,28 +45,20 @@ namespace UICatalog.Scenarios {
// Your data class
private class House : TreeNode {
-
// Your properties
public string Address {get;set;}
public List Rooms {get;set;}
// ITreeNode member:
+ public override IList Children => Rooms.Cast().ToList();
- public IList Children => Rooms.Cast().ToList();
-
- public override string ToString ()
- {
- return Address;
- }
+ public override string Text { get => Address; set => Address = value; }
}
private class Room : TreeNode{
public string Name {get;set;}
- public override string ToString ()
- {
- return Name;
- }
+ public override string Text{get=>Name;set{Name=value;}}
}
private void LoadRooms()
diff --git a/docfx/articles/treeview.md b/docfx/articles/treeview.md
index 1000d10ad..7954d7d26 100644
--- a/docfx/articles/treeview.md
+++ b/docfx/articles/treeview.md
@@ -35,35 +35,24 @@ Having to create a bunch of TreeNode objects can be a pain especially if you alr
```csharp
// Your data class
private class House : TreeNode {
-
-
+
// Your properties
public string Address {get;set;}
public List Rooms {get;set;}
// ITreeNode member:
+ public override IList Children => Rooms.Cast().ToList();
- public IList Children => Rooms.Cast().ToList();
-
- public override string ToString ()
- {
- return Address;
- }
+ public override string Text { get => Address; set => Address = value; }
}
+
// Your other data class
private class Room : TreeNode{
-
+
public string Name {get;set;}
-
- // Rooms have no sub objects
- public IList Children => new List();
-
- public override string ToString ()
- {
- return Name;
- }
+ public override string Text{get=>Name;set{Name=value;}}
}
```