using System; using System.Reactive.Linq; using Artemis.Core; namespace Artemis.UI.Extensions; public static class DataBindingExtensions { public static IObservable AsObservable(this IDataBinding dataBinding) { return Observable.FromEventPattern(x => dataBinding.DataBindingEnabled += x, x => dataBinding.DataBindingEnabled -= x) .Merge(Observable.FromEventPattern(x => dataBinding.DataBindingDisabled += x, x => dataBinding.DataBindingDisabled -= x)) .Select(e => e.EventArgs.DataBinding) .StartWith(dataBinding); } }