Добрый день,
Я хочу добавить определенные элементы в свой список со списком, но у меня возникает ошибка.
Код:
Add-Type -AssemblyName PresentationFramework
[xml]$Form = @"
<Window xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title = "Printer GUI" Height = "465" Width = "375">
<Canvas Background = "White">
<Label Name = "label_username" Content = "Username" HorizontalAlignment = "Left" Margin = "30,30,0,0" VerticalAlignment = "Top"/>
<Label Name = "label_Location" Content = "Select Location" HorizontalAlignment = "Left" Margin = "170,30,0,0" VerticalAlignment = "Top"/>
<TextBox Name = "textbox_username" HorizontalAlignment = "Left" Height = "23" Margin = "30,56,0,0" TextWrapping = "Wrap" VerticalAlignment = "Top" Width = "120"/>
<ComboBox Name = "ComboBox_Location" HorizontalAlignment = "Left" Margin = "170,56,0,0" VerticalAlignment = "Top" Width = "160"/>
<ComboBoxItem Content = "X"/>
<ComboBoxItem Content = "Y"/>
<ComboBoxItem Content = "Z"/>
</ComboBox>
<Label Name = "label_printer" Content = "Please select printer from list" HorizontalAlignment = "Left" Margin = "30,105,0,0" VerticalAlignment = "Top"/>
<ComboBox Name = "ComboBox_Printer" HorizontalAlignment = "Left" Margin = "30,131,0,0" VerticalAlignment = "Top" Width = "300"/>
<CheckBox Name = "CheckBox" Content = "Check here if you want to add this printer 
	to your permanent list" HorizontalAlignment = "Left" Margin = "56,185,0,0" VerticalAlignment = "Top" Height = "39" Width = "245"/>
<Button Name = "Button_Add" Content = "Add Printer" Margin = "140,244,140,150" Width = "75" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
<Button Name = "Button_XPS" Content = "Printer Defaults issue
 in Practice Partner" Margin = "90,285,90,102" Width = "175" Height = "40" HorizontalContentAlignment = "Center" VerticalContentAlignment = "Center" ClickMode = "Release" VerticalAlignment = "Center"/>
<Button Name = "Button_Service" Content = "Service call for Printer" Margin = "113,343,110,51" Width = "130" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
<Button Name = "Button_Cancel" Content = "Cancel" Margin = "140,384,140,10" Width = "75" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
</Canvas>
</Window>
"@
$NR=(New-Object System.Xml.XmlNodeReader $Form)
$Win=[Windows.Markup.XamlReader]::Load($NR)
$Win.Showdialog()
Как видите, я пытался добавлять элементы, но ошибка заключалась в следующем;
Cannot convert value "<Window xmlns=...</Window>" to type "System.Xml.XmlDocument".
Error: "The 'Canvas' start tag on line 4 position 6 does not match the end tag of
'ComboBox'. Line 12, position 11."
At H:\Scripts\Form_Main_XAML.ps1:3 char:1
+ [xml]$Form = @"
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
Я впервые в Visual Studios, и до этого этот код был WinForms. Спасибо всем заранее.





Ваш блок, который говорит:
<ComboBox Name = "ComboBox_Location" HorizontalAlignment = "Left" Margin = "170,56,0,0" VerticalAlignment = "Top" Width = "160"/>
<ComboBoxItem Content = "X"/>
<ComboBoxItem Content = "Y"/>
<ComboBoxItem Content = "Z"/>
</ComboBox>
Первая строка заканчивается на />, в котором закрывающий тег обозначает конец определения ComboBox. Вместо этого вы хотите завершить его с помощью > и позволить соответствующей строке </ComboBox> закрыть ваш блок.
@ Megamidget3 Никаких проблем! Когда я впервые изучал XAML в VS, это было одним из моих маленьких раздражителей. инстинктивно набирая /, чтобы закончить тег, потому что он автоматически заполняет >. Мое предложение - выработать привычку создавать свой элемент управления, <ComboBox, и если вы знаете, что у вас будут дочерние узлы, немедленно введите >, чтобы он автоматически заполнял </ComboBox> для вас, и разложите его так, чтобы он давал вам визуальная подсказка, чтобы поместить туда подпункты.
В вашем поле со списком XAML был закрывающий тег, хотя его не должно быть:
<Window xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title = "Printer GUI" Height = "465" Width = "375">
<Canvas Background = "White">
<Label Name = "label_username" Content = "Username" HorizontalAlignment = "Left" Margin = "30,30,0,0" VerticalAlignment = "Top"/>
<Label Name = "label_Location" Content = "Select Location" HorizontalAlignment = "Left" Margin = "170,30,0,0" VerticalAlignment = "Top"/>
<TextBox Name = "textbox_username" HorizontalAlignment = "Left" Height = "23" Margin = "30,56,0,0" TextWrapping = "Wrap" VerticalAlignment = "Top" Width = "120"/>
<ComboBox Name = "ComboBox_Location" HorizontalAlignment = "Left" Margin = "170,56,0,0" VerticalAlignment = "Top" Width = "160">
<ComboBoxItem Content = "X"/>
<ComboBoxItem Content = "Y"/>
<ComboBoxItem Content = "Z"/>
</ComboBox>
<Label Name = "label_printer" Content = "Please select printer from list" HorizontalAlignment = "Left" Margin = "30,105,0,0" VerticalAlignment = "Top"/>
<ComboBox Name = "ComboBox_Printer" HorizontalAlignment = "Left" Margin = "30,131,0,0" VerticalAlignment = "Top" Width = "300"/>
<CheckBox Name = "CheckBox" Content = "Check here if you want to add this printer 
	to your permanent list" HorizontalAlignment = "Left" Margin = "56,185,0,0" VerticalAlignment = "Top" Height = "39" Width = "245"/>
<Button Name = "Button_Add" Content = "Add Printer" Margin = "140,244,140,150" Width = "75" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
<Button Name = "Button_XPS" Content = "Printer Defaults issue
 in Practice Partner" Margin = "90,285,90,102" Width = "175" Height = "40" HorizontalContentAlignment = "Center" VerticalContentAlignment = "Center" ClickMode = "Release" VerticalAlignment = "Center"/>
<Button Name = "Button_Service" Content = "Service call for Printer" Margin = "113,343,110,51" Width = "130" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
<Button Name = "Button_Cancel" Content = "Cancel" Margin = "140,384,140,10" Width = "75" Height = "25" VerticalAlignment = "Center" ClickMode = "Release"/>
</Canvas>
</Window>
Спасибо @Chris. Я должен был знать, что это простое решение. Мне нужно следить за своими открытиями и закрытиями. Спасибо за понимание!