mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-30 09:47:58 +01:00
Added SelectionChanged event
This commit is contained in:
@@ -36,10 +36,30 @@ namespace Terminal.Gui {
|
||||
set { canExpandGetter = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// private variable for <see cref="SelectedObject"/>
|
||||
/// </summary>
|
||||
object selectedObject;
|
||||
|
||||
/// <summary>
|
||||
/// The currently selected object in the tree
|
||||
/// </summary>
|
||||
public object SelectedObject {get;set;}
|
||||
public object SelectedObject {
|
||||
get => selectedObject;
|
||||
set {
|
||||
var oldValue = selectedObject;
|
||||
selectedObject = value;
|
||||
|
||||
if(!ReferenceEquals(oldValue,value))
|
||||
SelectionChanged?.Invoke(this,new SelectionChangedEventArgs(this,oldValue,value));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when the <see cref="SelectedObject"/> changes
|
||||
/// </summary>
|
||||
public event EventHandler<SelectionChangedEventArgs> SelectionChanged;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The root objects in the tree, note that this collection is of root objects only
|
||||
@@ -478,4 +498,33 @@ namespace Terminal.Gui {
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public delegate bool CanExpandGetterDelegate(object model);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Event arguments describing a change in selected object in a tree view
|
||||
/// </summary>
|
||||
public class SelectionChangedEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// The view in which the change occurred
|
||||
/// </summary>
|
||||
public TreeView Tree { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The previously selected value (can be null)
|
||||
/// </summary>
|
||||
public object OldValue { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The newly selected value in the <see cref="Tree"/> (can be null)
|
||||
/// </summary>
|
||||
public object NewValue { get; }
|
||||
|
||||
public SelectionChangedEventArgs(TreeView tree, object oldValue, object newValue)
|
||||
{
|
||||
Tree = tree;
|
||||
OldValue = oldValue;
|
||||
NewValue = newValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user