Interactive TUI
Your apps are now interactive
Preparation
Single data type interactive TUI
internal class CliInfoPaneTestData : BaseInteractiveTui<string>, IInteractiveTui<string>
{
internal static List<string> strings = [];
/// <inheritdoc/>
public override IEnumerable<string> PrimaryDataSource =>
strings;
/// <inheritdoc/>
public override bool AcceptsEmptyData =>
true;
/// <inheritdoc/>
public override string GetInfoFromItem(string item)
{
string selected = item;
// Check to see if we're given the test info
if (string.IsNullOrEmpty(selected))
return " No info.";
else
return $" {selected}";
}
/// <inheritdoc/>
public override string GetEntryFromItem(string item)
{
string selected = item;
return selected;
}
internal void Add(int index)
{
strings.Add($"[{index}] --+-- [{index}]");
}
internal void Remove(int index)
{
if (strings.Count > 0)
strings.RemoveAt(index);
}
internal void RemoveLast()
{
if (strings.Count > 0)
strings.RemoveAt(strings.Count - 1);
}
}
Double data type interactive TUI
