/// <summary> /// The thread that updates the list /// </summary> /// <param name="ovp"> /// this overview page /// </param> public void PopulateListThread(OverviewPage ovp) { StationStatus selected = null; ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { selected = (StationStatus)stationGrid.SelectedItem; })); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { UpdateLabel.Content = "Scanning..."; })); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { LoadingBar.Visibility = System.Windows.Visibility.Visible; })); _ui.DiscoverPeers(); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { stationGrid.Items.Refresh(); })); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { UpdateLabel.Content = string.Empty; })); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { LoadingBar.Visibility = System.Windows.Visibility.Hidden; })); ovp.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { RefreshButton.IsEnabled = true; UpdateControls(); })); }
/// <summary> /// The thread that updates the list /// </summary> /// <param name="ovp">this overview page</param> public void PopulateListThread(OverviewPage ovp) { ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { UpdateLabel.Content = "Opdaterer..."; })); ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { LoadingBar.Visibility = Visibility.Visible; })); IEnumerable <IPEndPoint> peerlist = _ui.GetPeerlist(); if (peerlist != null) { var dataSource = (from ip in peerlist where _ui.IsStationActive(ip) select new StationStatus { IpAdress = ip.Address.ToString(), Connected = true }).ToList(); dataSource.AddRange(from ip in _ui.DiscoverPeers() where !peerlist.Contains(ip) select new StationStatus { IpAdress = ip.Address.ToString(), Connected = false }); ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { stationGrid.ItemsSource = dataSource; })); ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { stationGrid.Items.Refresh(); })); } ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { UpdateLabel.Content = ""; })); ovp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate { LoadingBar.Visibility = Visibility.Hidden; })); }