PowerShell的WPF Datepicker事件处理程序

PowerShell的WPF Datepicker事件处理程序,wpf,powershell,datepicker,Wpf,Powershell,Datepicker,我正在尝试向PowerShell中的日期选择器WPF控件添加事件处理程序,以便在用户选择日期时触发事件。我试着跟着,但没用。有人知道日期选择器在PowerShell中使用的正确事件处理程序是什么吗 $dpDate.Add_SelectedDateChanged({ do-something-here }) 代码片段如下所示: <DatePicker x:Name="dpDate" HorizontalAlignment="Left" VerticalAlignment="Top" Wid

我正在尝试向PowerShell中的日期选择器WPF控件添加事件处理程序,以便在用户选择日期时触发事件。我试着跟着,但没用。有人知道日期选择器在PowerShell中使用的正确事件处理程序是什么吗

$dpDate.Add_SelectedDateChanged({ do-something-here })
代码片段如下所示:

<DatePicker x:Name="dpDate" HorizontalAlignment="Left" VerticalAlignment="Top" Width="105" Focusable="false"/>

$dpDate.Add_SelectedDateChanged
    ({ 
        $DateFormat = get-date $dpDate.SelectedDate -f yyy-MM-dd
        $tb_FinalDate.text = $DateFormat
    })

这是Powershell/WPF代码,用于执行已测试和验证的操作:

Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName System.Windows.Forms
[xml]$xaml=@"
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Test"
        Title="MainWindow" Height="265" Width="371">
    <Grid>
        <DatePicker x:Name="dpDate" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tb_FinalDate" HorizontalAlignment="Left" Height="23" Margin="10,55,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="149"/>

    </Grid>
</Window>

"@

$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$Window=[Windows.Markup.XamlReader]::Load($reader)

#Turn XAML into PowerShell objects
$xaml.SelectNodes("//*[@*[contains(translate(name(.),'n','N'),'x:Name')]]") | ForEach-Object{
    Set-Variable -Name ($_.Name) -Value $Window.FindName($_.Name)
}

$dpDate.Add_SelectedDateChanged({
    $tb_FinalDate.Text = Get-Date($dpDate.Text) -Format 'yyyy-MM-dd'
})

#Display Form
$Window.ShowDialog() | Out-Null

你想采取什么样的行动?下面是一个示例:$dpDate.Add_SelectedDateChanged{您选择的写入主机:$dpDate.Text}。每次选择日期时,新日期都会显示在Powershell控制台Manu中。我要执行的操作是,在选择日期时,用所选日期更新另一个文本框。我尝试从处理程序调用非常简单的操作,但没有触发任何操作,因此想知道Add_SelectedDateChanged是否为datapicker提供了正确的事件处理程序。您能提供您尝试过的代码吗?通常这很容易,因为您有正确的处理程序来执行此操作。例如:$dpDate.Add_SelectedDateChanged{$textbox.Text=$dpDate.Text}将使用所选日期更新您的文本框。我在上面的帖子中添加了代码片段。Manu,我能够在您的工作示例的帮助下识别并修复我的代码。非常感谢。
$dpDate.Add_SelectedDateChanged({
    $tb_FinalDate.Text = Get-Date($dpDate.Text) -Format 'yyyy-MM-dd'
})