Powershell 注册 WPF 事件

Powershell Register WPF events

我正在尝试构建一个 WPF gui,其中我有两个单选按钮列表框。 一个按钮加载单选按钮:

function mybuttonclick {
    $List = get-content "list.txt"
    foreach ($item in $list) {
        $tmpradio = New-Object System.Windows.Controls.RadioButton
        $tmpradio.content = "$item"
        $tmpradio.groupname = "MyList"
        Register-ObjectEvent -InputObject $tmpradio -EventName Checked -Action { write-host "test"}
        $MyListbox.AddChild($tmpradio)
    }
}

但是我什么也没得到,退出函数后对象被删除是范围问题吗?

是否有解决方案,以便我可以选择一个或另一个操作,无论组名是“MyList”还是例如“MyOtherList”

看来我要再次回答我自己的问题了..

老实说,就像我想的那样简单... Jim Moyle解释了,我适应了我的情况..

function mybuttonclick {
    $List = get-content "list.txt"
    foreach ($item in $list) {
        $tmpradio = New-Object System.Windows.Controls.RadioButton
        $tmpradio.content = "$item"
        $tmpradio.groupname = "MyList"
        [System.Windows.RoutedEventHandler]$checkhandler = {write-host 'Test'}
        $tmpradio.AddHandler([System.Windows.Controls.RadioButton]::CheckedEvent, $checkhandler)
        $MyListbox.AddChild($tmpradio)
    }
}

为了简单起见,我只是像往常一样创建我的单选按钮, 然后我创建一个处理程序脚本块,它只是在触发 x 事件时执行的代码。

最后我将该处理程序添加到 CheckedEvent 上的单选按钮。

我可以通过打开调试器找到事件名称,输入:

[System.Windows.Controls.RadioButton]::

然后开始自动完成 Tab 键

来源:https://www.youtube.com/watch?v=s6A9KuEM324