从PowerShell中的WPF文本框填充数据网格

从PowerShell中的WPF文本框填充数据网格,powershell,user-interface,Powershell,User Interface,我有一个脚本,我正试图变成一个图形用户界面 有一个DataGrid,有两列,我有两个TextBoxes,我希望能够在其中键入填充DataGrid的内容 box1填充第一列,box2填充第二列 我需要有关向下键和填充部分的帮助 #LoadForm ./LoadDialog.ps1 -XamlPath 'C:\Forms\ReNamer.xaml' #EVENT Handler $NewName #Add old name manually ##########################

我有一个脚本,我正试图变成一个图形用户界面

有一个
DataGrid
,有两列,我有两个
TextBox
es,我希望能够在其中键入填充
DataGrid
的内容

box1
填充第一列,
box2
填充第二列

我需要有关
向下键和填充部分的帮助

#LoadForm
./LoadDialog.ps1 -XamlPath 'C:\Forms\ReNamer.xaml'

#EVENT Handler
$NewName 

#Add old name manually
#################################PLEASE HELP HERE
$OldName.Add_KeyDown {
    if ($_.KeyCode -eq 'Enter') {
        $AddOldName.Invoke()
        #Suppress sound from unexpected use of enter on keyPress/keyUp
        $_.SuppressKeyPress = $true
    }
}
$AddOldName.Add_Click({ AddOldName })

##$renameBtn.Add_Click({ $Form.Close() })

$Import.Add_Click({ GetCompList })

#Launch the window
$xamGUI.ShowDialog() | Out-Null

#Csv import button
Function GetCompList {
    ##File location
    $csvfile = Import-Csv "C:\Sysinternals\rename.csv" |
        Select-Object @{ n = "OldName"; e = { $_.OldName } }, @{ n = "NewName"; e = { $_.NewName } }

    $csvfile | ForEach-Object { $dataGrid.AddChild($_) }
}

#Run Button
Function RenameComputers {
    Write-Host "Renaming computer from: $o to: $n"
    netdom renamecomputer $o /newName:$n /uD:sdirc\clarkj8 /passwordD:$p /force /reboot
}

#NewName txtbox

#OldName txtBox
##############################################PLEASE help here
Function AddOldName {
    $row = New-Object PSObject
    Add-Member -InputObject $row -MemberType NoteProperty -Name "OldName" -Value $OldName.Text
}
(假设您的新名称字段名为
$newName

然后在该函数中,您还可以执行以下操作:

netdom renamecomputer $OldName.text /newName:$NewName.text /uD:sdirc\clarkj8 /passwordD:$p /force /reboot
$csvfile | % { netdom renamecomputer $_.OldName /newName:$_.NewName /uD:sdirc\clarkj8 /passwordD:$p /force /reboot }
在计算机列表导入功能中,您还可以执行以下操作:

netdom renamecomputer $OldName.text /newName:$NewName.text /uD:sdirc\clarkj8 /passwordD:$p /force /reboot
$csvfile | % { netdom renamecomputer $_.OldName /newName:$_.NewName /uD:sdirc\clarkj8 /passwordD:$p /force /reboot }

我以前没有在Powershell中尝试过
KeyDown
s。

Hi,为什么要回滚我的编辑?(我清理并修复了你的代码)我不是故意的。这些论坛的新成员以及它们是如何工作的。我进去编辑了一个用户名。这是偶然发生的Yok,没问题。我试着解决问题。如果您想更改任何内容,请查看代码并进行修改。谢谢。这确实让上面的功能发挥了作用。现在我只需要把按键部分弄对。这已经起作用了。大多数情况下,它似乎只是创建了一个空行。函数AddName{$row=New Object PSObject Add Member-InputObject$row-MemberType NoteProperty-Name“旧计算机名”-Value$OldName Add Member-InputObject$row-MemberType NoteProperty-Name“新计算机名”-Value$NewName$DataGrid.AddChild($row)}您是否将绑定设置为“旧计算机名”和xaml中的“新计算机名”?