public DeviceViewModel(IDispatcherHelper dispatcherHelper, 
                               INavigationService navigationService, 
                               IDevice device, 
                               Func<IDevice, IMoCoBusCommService> moCoBusCommServiceFactory, 
                               Func<IMoCoBusCommService, byte, IMoCoBusProtocolService> moCoBusProtocolServiceFactory)
        {
            _dispatcherHelper = dispatcherHelper;
            _navigationService = navigationService;

            _commService = moCoBusCommServiceFactory(device);
            _commService.ConnectionChanged += CommServiceOnConnectionChanged;

            _protocolService = moCoBusProtocolServiceFactory(_commService, 3);

            ModeAstroViewModel = new ModeAstroViewModel(_dispatcherHelper, this, _protocolService);
            ModePanoViewModel = new ModePanoViewModel(_dispatcherHelper, this, _protocolService);
            ModeSmsViewModel = new ModeSmsViewModel(_dispatcherHelper, this, _protocolService);

            JoystickViewModel = new JoystickViewModel(this, _protocolService);
        }
 public JoystickNavigationHelper(JoystickViewModel joystickViewModel, Action dismissed)
 {
     JoystickViewModel = joystickViewModel;
     Dismissed = dismissed;
 }