c# - Resubscribe IObservable after merge -
i have iobservable listening 1 source:
_itemschanged = observable.merge(item1.observeitemchanged); _itemschanged.subscribe(_ => console.writeline("item changed"));
as app runs, additional items might added , want merge new item's stream existing one:
var item2 = new item(); _itemschanged.merge(item2.observeitemchanged);
however, see output when item1 changed. have refresh subscription somehow? expected merged stream picked right away.
the basic idea use subject<iobservable<t>>
subscribed to. lets add more items on fly. here way abstract bit (the subject subject<item>
project , merge observable<t>
):
var subject = new subject<item>(); iobserver<item> newitems = subject; iobservable<t> itemschanged = subject.selectmany(item => item.observeitemchanged); itemschanged.subscribe(_ => console.writeline("change")); // add items newitems.onnext(item1); newitems.onnext(item2);
Comments
Post a Comment