コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Settings.xaml.cs プロジェクト: yapakipe/samples
        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;
        }
コード例 #3
0
        private ListViewItem SwitchToItemState(object dataContext, DataTemplate template)
        {
            var item = WifiListView.ContainerFromItem(dataContext) as ListViewItem;

            item.ContentTemplate = template;

            return(item);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: Settings.xaml.cs プロジェクト: yapakipe/samples
        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;
            });
        }