private void WifiListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { var listView = sender as ListView; var connectedNetwork = App.NetworkPresenter.GetCurrentWifiNetwork(); foreach (var item in e.RemovedItems) { if (connectedNetwork == item) { SwitchToItemState(item, WifiConnectedState, true); } else { SwitchToItemState(item, WifiInitialState, true); } } foreach (var item in e.AddedItems) { if (connectedNetwork == item) { SwitchToItemState(connectedNetwork, WifiConnectedMoreOptions, true); } else { SwitchToItemState(item, WifiConnectState, true); } } WifiListView.ScrollIntoView(WifiListView.SelectedItem); }
private async void SetupWifi() { networkPresenter = new NetworkPresenter(); if (await NetworkPresenter.WifiIsAvailable()) { var networks = await networkPresenter.GetAvailableNetworks(); if (networks.Count > 0) { WifiListView.ItemsSource = networks; var connectedNetwork = networkPresenter.GetCurrentWifiNetwork(); if (connectedNetwork != null) { var connectedListItem = WifiListView.ContainerFromItem(connectedNetwork) as ListViewItem; connectedListItem.ContentTemplate = WifiConnectedState; } NoWifiFoundText.Visibility = Visibility.Collapsed; WifiListView.Visibility = Visibility.Visible; return; } } NoWifiFoundText.Visibility = Visibility.Visible; WifiListView.Visibility = Visibility.Collapsed; }
private ListViewItem SwitchToItemState(object dataContext, DataTemplate template) { var item = WifiListView.ContainerFromItem(dataContext) as ListViewItem; item.ContentTemplate = template; return(item); }
private ListViewItem SwitchToItemState(object dataContext, DataTemplate template, bool forceUpdate) { if (forceUpdate) { WifiListView.UpdateLayout(); } var item = WifiListView.ContainerFromItem(dataContext) as ListViewItem; if (item != null) { item.ContentTemplate = template; } return(item); }
private async void ConnectToWifi(WiFiAvailableNetwork network, PasswordCredential credential, CoreDispatcher dispatcher) { var didConnect = credential == null? networkPresenter.ConnectToNetwork(network, Automatic) : networkPresenter.ConnectToNetworkWithPassword(network, Automatic, credential); await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { SwitchToItemState(network, WifiConnectingState); }); DataTemplate nextState = (await didConnect) ? WifiConnectedState : WifiInitialState; await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { var item = WifiListView.ContainerFromItem(network) as ListViewItem; item.IsSelected = false; item.ContentTemplate = nextState; }); }