A concise, fast, and feature-rich data binding library for .NET, supporting equality, action, and event bindings with extensive configurability.
EBind is a modern .NET data binding library designed to be concise, performant, and highly extensible. It simplifies UI development by providing a clean syntax for binding view properties to viewmodel properties, methods, and events, reducing boilerplate code and improving maintainability.
.NET developers building UI applications, particularly those using Xamarin platforms (Android, iOS, Forms) who need efficient data binding. It's also suitable for developers seeking a lightweight, performant alternative to larger MVVM frameworks.
Developers choose EBind for its combination of performance, clean syntax, and extensibility. Benchmarks show it has faster trigger times and lower memory allocation compared to alternatives like MvvmCross, ReactiveUI, and Praeclarum.Bind, while offering configurable triggers and support for complex binding expressions.
🔵 .NET Data Binding we deserve: concise, fast, feature-rich
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show EBind has the fastest trigger times (68.71 ns) and lower memory allocation compared to alternatives like MvvmCross and ReactiveUI, making it ideal for performance-sensitive applications.
Uses C# collection initializers and lambda expressions for clean bindings, supporting complex operations like `view.Text == (vm.Text ?? vm.FallbackText)` without boilerplate code.
Supports custom triggers, bindings via IEBinding interface, and dispatchers, enabling integration with systems like Rx.Net and adaptation to various UI frameworks.
Built-in dispatchers like `Dispatcher.RunOnUiThread` handle background thread updates safely, preventing cross-threading issues in reactive UI scenarios.
Includes a linker include generator and AOT compiler hints, ensuring robust deployment on platforms like Xamarin.iOS without trimming or compilation errors.
Pre-configured triggers are limited to Xamarin platforms, requiring manual setup for other .NET UI frameworks like WPF or MAUI, reducing out-of-the-box usability.
Setting up triggers for custom events or properties requires explicit configuration with delegates, adding complexity compared to more integrated frameworks with automatic discovery.
Complex binding expressions increase creation time and memory usage, as shown in benchmarks where string interpolation allocations rise to 4176 B, impacting scalability for very dynamic UIs.
Relies on INPC for property change notifications, which can introduce boilerplate unless augmented with external tools like Fody.PropertyChanged, adding dependency management overhead.