Пример #1
0
        public void Unload()
        {
            SelectedWorkers.Clear();
            Workers.Clear();

            isLoaded = false;
        }
Пример #2
0
        /// <summary>
        /// Refresh all the worker lists
        /// </summary>
        public void RefreshLists(bool WorkersChanged, bool SelectedWorkerChanged, bool WorkerFilterChanged)
        {
            if (_isRefreshingControls || IgnoreControlRefresh)
            {
                return;
            }

            _isRefreshingControls = true;

            // Console.WriteLine("[" + DateTime.Now.ToString() + "] Refreshing Worker Lists");
            //  Console.WriteLine("\tStackTrace: '{0}'", Environment.StackTrace);

            foreach (WorkerCtrl ctrl in _WorkerCtrls)
            {
                bool ChangeMade = false;

                //if the workers have changed then update them
                if (WorkersChanged)
                {
                    ctrl.List.Workers = Workers;
                    ChangeMade        = true;
                }

                //now check whether selected workers has changed on this ctrl
                if (SelectedWorkerChanged)
                {
                    var DifferencesList = ctrl.List.SelectedItems.Where(x => !SelectedWorkers.Any(x1 => x1 == x))
                                          .Union(SelectedWorkers.Where(x => !ctrl.List.SelectedItems.Any(x1 => x1 == x)));

                    if (DifferencesList.Count() > 0)
                    {
                        ctrl.List.SelectedItems = SelectedWorkers;
                        ChangeMade = true;
                    }
                }

                //update the filter
                if (WorkerFilterChanged)
                {
                    if (ctrl.List.Filter != _WorkerListFilter)
                    {
                        ctrl.List.Filter = _WorkerListFilter;
                    }
                }

                //refresh the control
                if (ChangeMade || (!WorkersChanged && !SelectedWorkerChanged && !WorkerFilterChanged))
                {
                    ctrl.List.Refresh();
                }
            }

            _isRefreshingControls = false;
        }