Frag doch einfach den Author
Knockoff benutzt ein undokumentiertes Feature des Compilers (was ich seitdem schon einmal "verteidigen" musste, weils aus Versehen ausgebaut wurde), dass man Interfaces von anonymen Methoden ableiten und die Invoke Methode überladen kann. Klar kann man das auch klassisch (reguläres Interface mit Get/Set Methoden) lösen, aber der Witz hier war gerade, dass man es so nutzen kann, wie es aktuell ist.
DSharp hat Bindings, aber die funktionieren aber ein kleines bisschen anders und haben auch nicht den Benachrichtigungsmechanismus wie ich ihn in Knockoff (von KnockoutJS abgeschaut) eingebaut habe. Außerdem ist die Methode, Controls mit Attributen zu versehen um sie automatisch zu binden ziemlich fragil, weil der Designer einem da gerne mal zwischen schießt (aber man kann natürlich auch ohne dieses Feature).
Da ich aktuell an einer Delphi ReactiveX Implementierung arbeite, kann es sehr gut sein, dass darauf aufbauend etwas ähnliches entsteht. Aber das liegt noch in einiger Ferne.