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);
        }
Пример #2
0
 static Internal.IDispatcher <TState> GetDispatcher <TState>(IPOCOMachine <TState> machine)
 {
     return(DispatcherAccessor <TState> .Get(machine.GetType())(machine));
 }