public void Unload() { SelectedWorkers.Clear(); Workers.Clear(); isLoaded = false; }
/// <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; }