private T BoxItem(T item) { if (!(item != null && proxyWrapper.UnwrapPropertyObservable(item) is IPropertyProxy propertyProxy)) { IObservableProperty observableProperty = observableFactory.CreateObservableProperty(typeof(T)); if (item != null) { observableProperty.OverwriteFrom(item, true); } propertyProxy = proxyFactory.Create(observableProperty); } foreach (var subscriber in subscribers) { propertyProxy.Subscribe(subscriber); } return(proxyWrapper.WrapPropertyObservable <T>(propertyProxy)); }