private async Task SetupWifi() { Debug.WriteLine("SetupWifi start"); if (await networkPresenter.WifiIsAvailable()) { IList <WiFiAvailableNetwork> networks; try { networks = await networkPresenter.GetAvailableNetworks(); var emptys = networks.Where(w => string.IsNullOrEmpty(w.Ssid.Trim())).ToList(); foreach (WiFiAvailableNetwork wn in emptys) { networks.Remove(wn); } networks = networks.OrderBy(w => w.Ssid).ToList(); } catch (Exception e) { Debug.WriteLine(String.Format("Error scanning: 0x{0:X}: {1}", e.HResult, e.Message)); DisconnectButtonEnabled = true; NoWifiFoundText = e.Message; NoWifiFoundVisibility = Visibility.Visible; return; } Debug.WriteLine("SetupWifi networks :: " + networks.Count); if (networks.Count > 0) { ConnectedNetwork = networkPresenter.GetCurrentWifiNetwork(); Debug.WriteLine("SetupWifi ConnectedNetwork :: " + ConnectedNetwork); if (ConnectedNetwork != null) { networks.Remove(ConnectedNetwork); networks.Insert(0, ConnectedNetwork); WifiListSources = new ObservableCollection <WiFiAvailableNetwork>(networks); Debug.WriteLine("SetupWifi UpdateLayout!!!!!!!!!! :: "); SwitchToItemState(ConnectedNetwork, "WifiConnectedState", true); } else { WifiListSources = new ObservableCollection <WiFiAvailableNetwork>(networks); } DisconnectButtonEnabled = true; NoWifiFoundVisibility = Visibility.Collapsed; WifiListVisibility = Visibility.Visible; return; } } DisconnectButtonEnabled = true; NoWifiFoundVisibility = Visibility.Visible; WifiListVisibility = Visibility.Collapsed; Debug.WriteLine("SetupWifi end"); }