Ben sinds kort bezig met scriptjes te bouwen met een GUI eromheen. Hiervoor maak ik gebruik van WPF/PowerShell/XAML.
Heb enkele weken terug iets in elkaar gezet wat prima werkte (zelfs geconverteerd naar .exe), dat scriptje als blueprint gebruikt voor iets nieuws wat ik maak. Het lukt me echter niet om een button te creeren die een click actie heeft. Heb dit geprobeerd om Win10 en Server2016 maar blijf dezelfde foutmelding ontvangen.
Foutmelding bij uitvoeren script:
).
PowerShell Script:
EDIT:
Topic kan op slot. Probleem gefixt. De optie: Click="ExportLog_Click" hoeft er helemaal niet bij
Heb enkele weken terug iets in elkaar gezet wat prima werkte (zelfs geconverteerd naar .exe), dat scriptje als blueprint gebruikt voor iets nieuws wat ik maak. Het lukt me echter niet om een button te creeren die een click actie heeft. Heb dit geprobeerd om Win10 en Server2016 maar blijf dezelfde foutmelding ontvangen.
Foutmelding bij uitvoeren script:
Naar mijn idee zou de manier waarop ik het doe goed moeten zijn, maar misschien dat ik iets toch fout doet. Dit heeft echt gewerkt bij een ander scriptje (die nu trouwens ook niet meer werktException calling "Load" with "1" argument(s): "Failed to create a 'Click' from the text 'ExportLog_Click'."
At E:\Scripts\AuditLog\AuditExport.ps1:11 char:1
+ $Win=[Windows.Markup.XamlReader]::Load( $NR )
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : XamlParseException
PowerShell Script:
De App.xaml file (edited om het wat kleiner te maken en alleen relevante stukken):Add-Type -AssemblyName PresentationFramework
Function ExportAuditLog(){
Invoke-Sqlcmd -Query "...(nog mee bezig)"
}
[xml]$Form = Get-Content "E:\Scripts\AuditLog\App.xaml"
$NR=(New-Object System.Xml.XmlNodeReader $Form)
$Win=[Windows.Markup.XamlReader]::Load( $NR )
$fdate = $Win.FindName("FromDate")
$tdate = $Win.FindName("ToDate")
$filename = $Win.FindName("fname")
$exp = $Win.FindName("ExportLog")
$exp.add_click( {
$fromdate = $fdate.Text
$todate = $tdate.Text
$logname = $filename.Text
ExportAuditLog
} )
$Win.ShowDialog()
Heb dit zelfs opgepikt van een cursus op PluralSight maar het wilt maar niet. Zodra ik de click optie weghaal van de button lanceert de GUI prima.<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Audit Log Export" Height="470" Width="390.618" Background="#FFC8C8C8">
<Grid>
<Border BorderBrush="#FF605F5F" BorderThickness="1" HorizontalAlignment="Left" Height="120" Margin="10,22,0,0" VerticalAlignment="Top" Width="355"/>
{knip even andere labels en textboxen weg hier}
<Button Name="ExportLog" Content="Export" HorizontalAlignment="Left" Margin="290,391,0,0" VerticalAlignment="Top" Width="75" BorderBrush="#FF2061FF" Click="ExportLog_Click"/>
</Grid>
</Window>
EDIT:
Topic kan op slot. Probleem gefixt. De optie: Click="ExportLog_Click" hoeft er helemaal niet bij
