Приветствую всех! Сегодня я покажу как создать коллекцию в коде XAML и использовать его не посредственно в классах на C#. Сразу встает вопрос для чего это вообще нужно, ответ очень простой, все дело в том что такого рода возможность дает использовать не перегружать код в классах и упрощает доступ к коллекции в самом XAML.
Прежде чем создать коллекцию, нам необходимо подключить пространство имен, для этого напишем следующее MainWindow.xaml:
1 2 |
xmlns:col="clr-namespace:System.Collections;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib" |
Для этого создадим коллекцию дней в MainWindow.xaml код будет выглядеть следующим образом.
1 2 3 4 5 6 7 8 9 10 11 |
<Window.Resources> <col:ArrayList x:Key="days"> <sys:String>Понедельник</sys:String> <sys:String>Вторник</sys:String> <sys:String>Среда</sys:String> <sys:String>Четверг</sys:String> <sys:String>Пятница</sys:String> <sys:String>Суббота</sys:String> <sys:String>Воскресенье</sys:String> </col:ArrayList> </Window.Resources> |
Для этого создаем отдельный блок Window.Resources находящийся в глобальном блоке Window. И помещаем в него содержимое коллекции. Свойство Key задает имя ключа по которым мы сможем найти свою коллекцию в ResourceDictionary. Как это сделать мы рассмотрим код ниже:
1 2 3 4 5 6 7 8 9 10 11 |
public MainWindow() { InitializeComponent(); ArrayList arr = (ArrayList) Resources["days"]; string str=""; foreach(var item in arr) str+=item+"\n"; MessageBox.Show(str); } |
В коде выше нам потребовалось осуществить привидения иначе мы бы получили object, для этого мы осуществили распаковку и привидение к ArrayList
Если мы запустим свою программу, то увидим весь список содержащийся в нашей коллекции: