PowWinForms 0.0.66

dotnet add package PowWinForms --version 0.0.66
NuGet\Install-Package PowWinForms -Version 0.0.66
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="PowWinForms" Version="0.0.66" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PowWinForms --version 0.0.66
#r "nuget: PowWinForms, 0.0.66"
#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 PowWinForms as a Cake Addin
#addin nuget:?package=PowWinForms&version=0.0.66

// Install PowWinForms as a Cake Tool
#tool nuget:?package=PowWinForms&version=0.0.66

PowWinForms

Table of content

Features

Usage

Use RX for a control/form

This ties the reactive logic to the lifetime of the control (using the HandleCreated / HandleDestroyed events)

partial class MainWindow : Form
{
	public MainWindow()
	{
		InitializeComponent();

		this.InitRX(d =>
		{
			MyLogic.Init(this).D(d);
		});
	}
}

Persist windows

// Add a call to Track() when creating a window
var win = new MainWindow().Track();

Persist custom objects

class UserPrefs
{
	public string? LastFolder { get; set; }


	public void Save() => Saving?.Invoke(null, EventArgs.Empty);

	public event EventHandler? Saving;
	static UserPrefs()
	{
		WinFormsUtils.Tracker.Configure<UserPrefs>()
			.Properties(e => new
			{
				e.LastFolder
			})
			.PersistOn(nameof(UserPrefs.Saving));
	}
}

Usage:

var userPrefs = new UserPrefs().Track();
// ...
userPrefs.Save();

Create reactive variables

public partial class MainWin : Form
{
	public MainWin()
	{
		InitializeComponent();

		// Create a disposable tied to the lifetime of this form
		var d = this.MakeD();

		this.Events().HandleCreated.Subscribe(_ =>
		{
			// Create and bind reactive variables and use d to destroy them when the form is closed
			var name = Var.Make("name").D(d);

			// bind name
		});
	}
}

License

MIT

Product Compatible and additional computed target framework versions.
.NET net7.0-windows7.0 is compatible.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.66 478 9/15/2023
0.0.65 482 8/23/2023
0.0.64 472 8/22/2023
0.0.63 494 8/19/2023
0.0.62 551 8/9/2023
0.0.61 558 8/5/2023
0.0.60 551 7/30/2023
0.0.59 555 7/18/2023
0.0.58 570 7/15/2023
0.0.57 565 7/15/2023
0.0.56 543 7/12/2023
0.0.55 580 7/12/2023
0.0.54 561 7/11/2023
0.0.53 557 7/10/2023
0.0.52 565 7/10/2023
0.0.51 579 7/9/2023
0.0.50 570 7/9/2023
0.0.49 559 7/9/2023
0.0.48 551 7/9/2023
0.0.47 548 7/8/2023
0.0.46 586 7/5/2023
0.0.45 567 7/5/2023
0.0.44 545 7/4/2023
0.0.43 567 7/2/2023
0.0.42 566 7/2/2023
0.0.41 570 6/23/2023
0.0.40 578 6/23/2023
0.0.39 542 6/23/2023
0.0.38 548 6/21/2023
0.0.37 525 6/21/2023
0.0.36 534 6/21/2023
0.0.35 551 6/20/2023
0.0.34 532 6/20/2023
0.0.33 536 6/20/2023
0.0.32 542 6/19/2023
0.0.31 538 6/17/2023
0.0.30 554 6/17/2023
0.0.29 568 6/17/2023
0.0.28 545 6/17/2023
0.0.27 540 6/17/2023
0.0.26 552 6/17/2023
0.0.25 533 6/17/2023
0.0.24 558 6/17/2023
0.0.23 555 6/16/2023
0.0.22 581 6/16/2023
0.0.21 560 6/15/2023
0.0.20 586 6/15/2023
0.0.19 559 6/15/2023
0.0.18 548 6/14/2023
0.0.17 568 6/13/2023
0.0.16 551 6/12/2023
0.0.14 557 6/5/2023
0.0.12 561 6/3/2023
0.0.11 555 6/3/2023
0.0.10 549 6/3/2023
0.0.9 538 6/3/2023
0.0.8 549 6/3/2023
0.0.7 562 6/2/2023
0.0.6 554 6/2/2023
0.0.5 551 6/1/2023
0.0.4 557 6/1/2023
0.0.3 534 6/1/2023
0.0.2 548 5/31/2023
0.0.1 534 5/31/2023