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
        })
}