Private/CmdletHelp/_CmdletHelpUIEvents.ps1

function _CmdletHelpUIEvents {
    #region General UI
    $CmdletHelp.Add_SourceInitialized({
            _OnCmdletHelpSourceInitialized
        })

    $CmdletHelp.Add_Activated({
            if ($HomeWindow) {
                $HomeWindow_LoadingLabel.Visibility = 'Hidden'
            }
        })

    $CmdletHelp.Add_Closing({
            if ($HomeWindow) {
                $_.Cancel = $true
                $CmdletHelp.hide()
            }
            else {
                # $CmdletHelp.close()
            }
        })
    #endregion

    $CmdletHelp_DropdownButton.Add_Click({
            # This uses the Marlett font.
            $UpArrow = '5'
            $DownArrow = '6'
            switch ($CmdletHelp_DropdownButton.Content) {
                $UpArrow {
                    $CmdletHelp_FilterStackPanel.Visibility = 'Collapsed'
                    $CmdletHelp_DropdownButton.Content = $DownArrow
                }
                $DownArrow {
                    $CmdletHelp_FilterStackPanel.Visibility = 'Visible'
                    $CmdletHelp_DropdownButton.Content = $UpArrow
                }
                Default {
                }
            }
        })

    $CmdletHelp_FilterTextBox.Add_SelectionChanged({
            $InputText = $CmdletHelp_FilterTextBox.Text
            $FilterType = $CmdletHelp_FilterComboBox.Text
            switch ($FilterType) {
                'Cmdlet Names' {
                    $filter = "[Name] LIKE '%$InputText%'"
                }
                'Content' {
                    # I'm not putting this header in the datagrid so it can't filter on it.
                    $filter = "[ScriptBlock] LIKE '%$InputText%'"
                }
                Default {
                }
            }
            $CmdletDataTable.DefaultView.RowFilter = $filter
            $CmdletHelp_CmdletDataGrid.ItemsSource = $CmdletDataTable.DefaultView
        })

    $CmdletHelp_LookupButton.Add_Click({
            # $Repository = $CmdletHelp_PSRepositoryComboBox.Text
            _PopulateCmdletDataGrid -Repository $CmdletHelp_PSRepositoryComboBox.Text
        })

    $CmdletHelp_CmdletDataGrid.Add_SelectionChanged({
            $SelectedItem = $CmdletHelp_CmdletDataGrid.SelectedItem
            $CmdletHelp_CmdletTextBlock.Text = ''

            if ($SelectedItem) {
                $CmdletHelp_ScrollViewer.Visibility = 'Visible'

                $SelectedCmdlet = Get-Command $SelectedItem.Name
                switch ($SelectedCmdlet.CommandType) {
                    Alias {
                        $CmdletHelp_FileContentsTabItem.Visibility = 'Visible'
                        $CmdletHelp_FileContentsTextBox.Text = Get-Help $SelectedCmdlet.ResolvedCommandName -Full | Out-String
                    }
                    Function {
                        $CmdletHelp_FileContentsTabItem.Visibility = 'Visible'
                        $CmdletHelp_FileContentsTextBox.Text = $SelectedCmdlet.ScriptBlock
                    }
                    Cmdlet {
                        $CmdletHelp_FileContentsTabItem.Visibility = 'Collapsed'
                    }
                    Default {
                        $CmdletHelp_FileContentsTabItem.Visibility = 'Visible'
                        $CmdletHelp_FileContentsTextBox.Text = $SelectedCmdlet.ScriptBlock
                    }
                }
                $CmdletHelp_CmdletTextBlock.Text = $SelectedCmdlet.Name
                $CmdletHelp_HelpDocumentationTextBox.Text = Get-Help -Name $SelectedItem.Name -Full | Out-String

            }
            else {
                $CmdletHelp_ScrollViewer.Visibility = 'Collapsed'
            }
        })

    $CmdletHelp_CraftButton.Add_Click({
            $CmdletName = $CmdletHelp_CmdletTextBlock.Text

            $ShowCommand = Show-Command $CmdletName -PassThru
            $CmdletHelp_CommandTextBox.Text = $ShowCommand
        })
}