MessageBus和重播

时间:2013-01-31 08:49:45

标签: system.reactive reactiveui

我尝试向MessageBus注册一个observable,它重放新订阅时产生的最后一个值

var currentViewObs = currentViewGallery.ObservableForProperty(g => g.SelectedIndex)
                .Value().Select(CurrentViewObsSelector).Replay(1);

currentViewObs.Connect();

MessageBus.Current.RegisterMessageSource(currentViewObs, MessageBusContracts.CurrentView);

这不起作用,因为observable被包含在ScheduledSubject中,吞噬了重放。还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可能希望使用自己的MessageBus - 实现IMessageBus(可能只需复制粘贴来自here的代码并进行编辑),然后将其分配给MessageBus.Current