При загрузке моего сценария PowerShell WPF я хочу показать пользователю некоторую информацию о том, что сценарий загружает несколько вещей из Active Directory.
Как и мой сценарий, окно не отвечает во время загрузки (которая занимает около 20 секунд), а затем, когда все сделано, TextBox обновляется четырьмя строками, добавляющими текст в TextBox. Я хочу, чтобы он выполнял задачу 1, обновлял TextBox, затем задачу 2, обновлял TextBox и так далее. Как мне это сделать?
В блоке Add_ContentRendered у меня есть четыре $ WPFlogTxtBox.AddText («Некоторый текст»), но они отображаются в $ WPFlogTxtBox сразу после завершения блока Add_ContentRendered, а не тогда, когда они отображаются в скрипте.
XAML содержит:
<TextBox x:Name="logTxtBox" HorizontalAlignment="Left" Height="112" Margin="10,290,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="496" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"/>
Остальная часть сценария сокращена:
$Form.Add_ContentRendered({
$WPFlogTxtBox.AddText("Getting OUs")
$OUs = Get-ADOrganizationalUnit -Filter '*' | sort Name
$WPFlogTxtBox.AddText("Getting users")
$users = Get-ADUser -Filter * | sort Name
$WPFlogTxtBox.AddText("Getting groups")
$groups = Get-ADGroup -Filter '*' | sort Name
})
$Form.ShowDialog()
Это работает, кроме того, что текст добавляется в TextBox, когда все в Add-ContentRendered завершено.
Я хочу, чтобы метод AddText добавлял текст при выполнении команды, а не при завершении всего вызывающего блока (Add_ContentRendered).