У меня есть программа с главным окном (powershell wpf / xaml). Эта программа проверяет файлы и открывает второе окно, если чего-то не хватает, должна быть ссылка на папку, для этого я использую .Add_PreviewMouseDown({ })
. Это работает, но если я запускаю вторую проверку, окно 2 получает ту же "ссылку на папку", что и окно 3. Как я могу заставить его работать, чтобы ссылки окна 2 не получали updatet?
Я уже пытался получить динамические имена меток и PreviewMouseDown, но этого недостаточно.
$Script:WindowNumber += 1
$WindowName = "Win$WindowNumber"
$CEMessage = '<Label Name="CEFout' + $WindowNumber + '" HorizontalAlignment="Left" Margin="30,288,0,0" VerticalAlignment="Top" Width="142" FontSize="14" ToolTip="Fileserver Folder" >
<Hyperlink NavigateUri="Bureaublad\Machine Folder">⨯ CE:</Hyperlink>
</Label>'
New-Variable -Name "BijlagenWPF$WindowNumber" -Value ($BijlagenWPF = @"
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Bijlagen" Height="420" Width="250" Icon="$Icon" ResizeMode="NoResize" ShowInTaskbar="True">
<Grid HorizontalAlignment="Center" Margin="0,0,0,0" Width="240">
$CEMessage
</Grid>
</Window>
"@ -as [XML])
$NR2=(New-Object System.Xml.XmlNodeReader (Get-Variable | Where-Object Name -eq "BijlagenWPF$WindowNumber").Value)
New-Variable -Name $WindowName -Value ([Windows.Markup.XamlReader]::Load( $NR2 ))
$BijlagenWPF.SelectNodes("//*[@*[contains(translate(name(.),'n','N'),'Name')]]") | ForEach-Object {
New-Variable -Name $_.Name -Value (Get-Variable | Where-Object Name -eq $WindowName).Value.FindName($_.Name) -Force
}
(Get-Variable | Where-Object Name -eq "CEFout$WindowNumber").Value.Add_PreviewMouseDown({[system.Diagnostics.Process]::start("$Desktop\$Machine\Fileserver\manual\bijlagen")})
(Get-Variable | Where-Object Name -eq $WindowName).Value.Show()
Это скриншот 2 окон с открытой ссылкой. Теперь ссылка в первом окне (2532-163) такая же, как и во втором окне (2532-164). Но должно быть 2532-163 папки