PL.Tree
1.0.0
dotnet add package PL.Tree --version 1.0.0
NuGet\Install-Package PL.Tree -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PL.Tree" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PL.Tree --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PL.Tree, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PL.Tree as a Cake Addin #addin nuget:?package=PL.Tree&version=1.0.0 // Install PL.Tree as a Cake Tool #tool nuget:?package=PL.Tree&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PL.Tree
Thread-safe tree data structure library with event propagation.
Features
- All properties and methods are thread-safe.
- Values are stored in ValueNode<T> and ValueListNode<T>.
- Value property of ValueNode<T> is the main way of changing node values.
- ValueChanged event propagates to parent nodes. In case of changing the value of a container node its ValueChanged event is raised only once.
- ValueValidating event can be used to validate node value before it is set and ValueChanged event is raised.
- ClassNode and ClassListNode<T> provide container functionality.
Example
Code
using PL.Tree;
XY XY = new();
XY.X.ValueChanged += (s, e) => Console.WriteLine($"XY.X changed to {XY.X.Value}");
XY.Y.ValueChanged += (s, e) => Console.WriteLine($"XY.Y changed to {XY.Y.Value}");
XY.ValueChanged += (s, e) => Console.WriteLine($"XY changed to {{{XY.X.Value}, {XY.Y.Value}}}");
XY.X.Value = 5;
XY newXY = new();
newXY.X.Value = 1;
newXY.Y.Value = 2;
XY.SetValue(newXY);
internal class XY : ClassNode
{
public ValueNode<int> X { get; } = new();
public ValueNode<int> Y { get; } = new();
}
Output
XY.X changed to 5
XY changed to {5, 0}
XY.X changed to 1
XY.Y changed to 2
XY changed to {1, 2}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PL.Tree:
Package | Downloads |
---|---|
PL.Tree.WinForms
PL.Tree binding library for Windows Forms. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 583 | 6/28/2022 |
Initial release.