我想将组合框中的选定值传递给powershell中的参数

时间:2017-04-11 03:27:40

标签: wpf powershell

我在使用XAML创建的Windows表单上有一个组合框。我需要将选定的组合框值传递给我的脚本中的参数。我希望代码仅在我进行选择时运行(例如,如果可能的话,就像按钮点击事件一样)。

我尝试在代码开头$cboUseCase.之后使用不同的方法类型。现在这个代码试图在加载Window时运行,我只需要在选择时运行它。谢谢你的帮助。

$cboUseCase.({$configSelect = ($cboUseCase.SelectedItem.toString())
&$global:UCM.setConfigSelection -selection $configSelect})

1 个答案:

答案 0 :(得分:1)

不确定我真的理解你的问题。这是一个可运行的例子,显示如何"陷阱"组合框中的选择更改。

也许它可以给你一个跟踪的轨道:

[System.Reflection.Assembly]::LoadWithPartialName('PresentationFramework') | Out-Null

[xml]$xaml = @"
<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Name="Window" Title="Initial Window" WindowStartupLocation = "CenterScreen"
    SizeToContent = "WidthAndHeight" ShowInTaskbar = "True" Background = "lightgray"> 
    <StackPanel>
    <ComboBox x:Name="ComboBox1">
        <ComboBoxItem>Item 1</ComboBoxItem>
        <ComboBoxItem>Item 2</ComboBoxItem>
    </ComboBox>
</StackPanel>
</Window>
"@

$reader = (New-Object System.Xml.XmlNodeReader $xaml)
$Window = [Windows.Markup.XamlReader]::Load($reader)

$ComboBox1 = $Window.FindName("ComboBox1")

$ComboBox1.add_SelectionChanged( { 

    param($sender, $args)

    $selected = $sender.SelectedItem.Content
    Write-Host "Selected: $selected"
} )


$Window.Showdialog() | Out-Null