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 键
我正在尝试构建一个 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 键