private static ActiveListJoinerToReadOnlyList <int, int, int> CreateHasLeft(ActiveListJoinBehaviour joinBehaviour, out ObservableList <int> right) { right = new ObservableList <int>(); var joiner = new ActiveListJoiner <int, int, int>(joinBehaviour, (l, r) => l.GetOrElse(0) + r.GetOrElse(0), null, null); var result = new ActiveListJoinerToReadOnlyList <int, int, int>(joiner); joiner.SetBoth(1, right); return(result); }
public ActiveListJoinerToReadOnlyList(ActiveListJoiner <TLeft, TRight, TResult> joiner) { _joiner = joiner; joiner.AddRequested += Add; joiner.RemoveRequested += Remove; joiner.ReplaceRequested += Replace; joiner.ReplaceRangeRequested += ReplaceRange; joiner.MoveRequested += Move; joiner.MoveRangeRequested += MoveRange; joiner.ResetRequested += Reset; }