diff --git a/Perspex.Controls/TreeViewItem.cs b/Perspex.Controls/TreeViewItem.cs index 031e9d697e..f2edb63849 100644 --- a/Perspex.Controls/TreeViewItem.cs +++ b/Perspex.Controls/TreeViewItem.cs @@ -100,5 +100,30 @@ namespace Perspex.Controls this.treeView = null; } } + + protected override void OnKeyDown(KeyEventArgs e) + { + if (!e.Handled) + { + switch (e.Key) + { + case Key.Right: + if (this.Items != null && this.Items.Cast().Any()) + { + this.IsExpanded = true; + } + + e.Handled = true; + break; + + case Key.Left: + this.IsExpanded = false; + e.Handled = true; + break; + } + } + + base.OnKeyDown(e); + } } }