public NodeWindowViewModel(LocationModel locationModel, INodeNavigationService nodeNavigationService, ILocationService locationService, LocationViewmodel.Factory locationViewmodelFactory, DispatcherAccessor dispatcherAccessor, NodeHistoryState nodeHistoryState, BreadCrumbViewmodel.Factory breadCrumbViewmodelFactory) { _locationViewModel = locationViewmodelFactory(locationModel, this); _nodeNavigationService = nodeNavigationService; _locationService = locationService; _locationViewmodelFactory = locationViewmodelFactory; _dispatcherAccessor = dispatcherAccessor; _title = locationModel.Name; _nodeHistoryState = nodeHistoryState; _breadCrumbViewmodelFactory = breadCrumbViewmodelFactory; BackCommand = new AwaitableDelegateCommand(GoBack, () => BackAvailable); ForwardCommand = new AwaitableDelegateCommand(GoForward, () => ForwardAvailable); var breadCrumbs = ConvertToBreadCrumbs(_nodeHistoryState); BreadCrumbs = new ObservableCollection <BreadCrumbViewmodel>(breadCrumbs); }
static Internal.IDispatcher <TState> GetDispatcher <TState>(IPOCOMachine <TState> machine) { return(DispatcherAccessor <TState> .Get(machine.GetType())(machine)); }