gpt4 book ai didi

wpf - 如何在 PowerShell 中将事件处理程序附加到在 XAML 中定义的 DataGridTemplateColumn 中的按钮?

转载 作者:行者123 更新时间:2023-12-04 19:49:23 24 4
gpt4 key购买 nike

我有一些要导入到 PowerShell 脚本中的 XAML。它包含一个显示 PowerShell cmdlet 结果的 DataGrid。我使用 DataGridTemplateColumn 向每一行添加了一个“编辑”按钮。现在,我想为每个按钮添加一个事件处理程序。我可以用代码来完成:

$adUsersList_Results = $activeDirectory_Users_ListControl.FindName('ResultsDataGrid')
$dataTemplate = New-Object 'Windows.DataTemplate'
$buttonElement = New-Object 'Windows.FrameworkElementFactory' ([Windows.Controls.Button])
$buttonElement.SetValue([Windows.Controls.Button]::ContentProperty, "Edit")
$buttonElement.AddHandler([Windows.Controls.Button]::ClickEvent, [Windows.RoutedEventHandler]{
PARAM (
[Object]$sender,
[Windows.RoutedEventArgs]$e
)
Write-Host "Clickety-click!"
Write-Host $sender.DataContext
})
$dataTemplate.VisualTree = $buttonElement
$dataGridTemplateColumn = New-Object 'Windows.Controls.DataGridTemplateColumn'
$dataGridTemplateColumn.Header = 'Poo'
$dataGridTemplateColumn.CellTemplate = $dataTemplate
$adUsersList_Results.Columns.Add($dataGridTemplateColumn)

但它有点笨拙。 XAML 如下所示:

<DataGrid Grid.Row="1"
x:Name="ResultsDataGrid"
IsReadOnly="True"
HorizontalAlignment="Stretch"
Margin="3"
VerticalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Edit" Width="60" x:Name="ADUserListButton"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

我试过使用 FindName('ADUserListButton') 但它不起作用。有没有一种方法可以将所有视觉内容保留在 XAML 中,而只在 PowerShell 中执行事件处理程序?

旁白:我知道 Show-UI。在决定哪个最适合我们之前,我实际上在 Show-UI 和 PowerShell & XAML 中做同样的事情。

我也知道您可以在网格内进行编辑,但我认为这对于此类数据而言并不是很好的用户体验。

最佳答案

我不太确定,但可能是因为您列出的 XAML 按钮没有处理程序连接吗?即

<Button Content="Edit" Width="60" x:Name="ADUserListButton" Click="ADUserListButton_Click"/>

关于wpf - 如何在 PowerShell 中将事件处理程序附加到在 XAML 中定义的 DataGridTemplateColumn 中的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com