public void Dispose()
 {
     Nbxs.ForEach(nbx =>
     {
         nbx.Dispose();
     });
     Nbxs.Clear();
 }
        public MainUserControlViewModel(IDataService dataService)
        {
            _dataService = dataService;
            _uiContext   = System.Threading.SynchronizationContext.Current;

            _dataService.GetAppData((cfg, error) =>
            {
                if (error != null)
                {
                    // Report error here
                    return;
                }

                UlisesNbxItem.NotifyChange += (msg) =>
                {
                    _uiContext.Send(x =>
                    {
                        if (_mensajes.Count >= 4)
                        {
                            _mensajes.RemoveAt(3);
                        }
                        _mensajes.Insert(0, new LogMessage()
                        {
                            Msg = DateTime.Now.ToLongTimeString() + ": " + msg
                        });
                        RaisePropertyChanged("Mensajes");
                    }, null);
                };

                _mensajes.Insert(0, new LogMessage()
                {
                    Msg = DateTime.Now.ToLongTimeString() + ": Mensaje Inicial..."
                });

                UlisesNbxItem.ServerIp   = cfg.ServerIP;
                UlisesNbxItem.ServerPort = cfg.ServerPort;
                UlisesNbxItem.Mode       = cfg.Modo;

                foreach (var nbx in cfg.Nbxs)
                {
                    var item = new UlisesNbxItem()
                    {
                        Ip = nbx.Ip, WebPort = cfg.Modo == "Mixed" ? nbx.MixedWp : nbx.RadioWp
                    };
                    item.Start();
                    Nbxs.Add(item);
                }
                ;

                ListClean = new RelayCommand(() =>
                {
                    _mensajes.Clear();
                    RaisePropertyChanged("Mensajes");
                });
            });
        }