Files
FileTime2/src/Library/TerminalUI/ExpressionTrackers/ParameterTracker.cs

31 lines
955 B
C#

using System.Linq.Expressions;
namespace TerminalUI.ExpressionTrackers;
public sealed class ParameterTracker : ExpressionTrackerBase
{
private readonly ExpressionParameterTrackerCollection _trackerCollection;
private readonly string _parameterName;
public ParameterTracker(
ParameterExpression parameterExpression,
ExpressionParameterTrackerCollection trackerCollection,
string parameterName)
{
_trackerCollection = trackerCollection;
_parameterName = parameterName;
trackerCollection.ValueChanged += TrackerCollectionOnValueChanged;
UpdateValueAndChangeTrackers();
}
private void TrackerCollectionOnValueChanged(string parameterName, object? newValue)
=> UpdateValueAndChangeTrackers();
protected override object? ComputeValue()
{
_trackerCollection.Values.TryGetValue(_parameterName, out var v);
return v;
}
}