private ObservableItemContainer <Tuple <TOuter, TInner>, TResult> Merge( TOuter outerItem, TInner innerItem) { var tuple = Tuple.Create(outerItem, innerItem); var observable = _resultSelector(tuple.Item1, tuple.Item2); var container = new ObservableItemContainer <Tuple <TOuter, TInner>, TResult>(tuple, observable); container.ValueChanged += MergedContainerOnValueChanged; return(container); }
private void DestroyContainer(ObservableItemContainer <Tuple <TOuter, TInner>, TResult> item) { item.ValueChanged -= MergedContainerOnValueChanged; item.Dispose(); }