public MainViewModel( IViewModelWindowManager viewModelWindowManager, IPublishEvent publishEvent, ForwardRuleDispatch forwardRuleDispatch, Func <MessageListViewModel> messageListViewModelFactory, Func <MessageDetailViewModel> messageDetailViewModelFactory, LogClientSinkQueue logClientSinkQueue, AppResourceLocator resourceLocator) { _viewModelWindowManager = viewModelWindowManager; _publishEvent = publishEvent; _forwardRuleDispatch = forwardRuleDispatch; MessageListViewModel = messageListViewModelFactory(); MessageDetailViewModel = messageDetailViewModelFactory(); MessageListViewModel.ConductWith(this); MessageDetailViewModel.ConductWith(this); _logClientSinkQueue = logClientSinkQueue; _resourceLocator = resourceLocator; LogText = _resourceLocator.GetResourceString("LogClientSink.html"); SetupObservables(); }
protected override void OnViewLoaded(object view) { base.OnViewLoaded(view); var typedView = view as MainView; var logPanel = typedView.LogPanel; logPanel.Text = _resourceLocator.GetResourceString("LogClientSink.html"); this.GetPropertyValues(m => m.LogText) .Throttle(TimeSpan.FromMilliseconds(200), TaskPoolScheduler.Default) .ObserveOnDispatcher() .Subscribe(m => logPanel.Text = m); }