Создание коллекции в XAML WPF

Приветствую всех! Сегодня я покажу как создать коллекцию в коде XAML и использовать его не посредственно в классах на C#. Сразу встает вопрос для чего это вообще нужно, ответ очень простой, все дело в том что такого рода возможность дает использовать не перегружать код в классах и упрощает доступ к коллекции в самом XAML.

Прежде чем создать коллекцию, нам необходимо подключить пространство имен, для этого напишем следующее MainWindow.xaml:

xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:sys="clr-namespace:System;assembly=mscorlib"

Для этого создадим коллекцию дней в MainWindow.xaml код будет выглядеть следующим образом.

 <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. Как это сделать мы рассмотрим код ниже:

public MainWindow()
        {
            InitializeComponent();
          
            ArrayList arr = (ArrayList) Resources["days"];
            string str="";
            foreach(var item in arr)
               str+=item+"\n";

            MessageBox.Show(str);
        }

В коде выше нам потребовалось осуществить привидения иначе мы бы получили object, для этого мы осуществили распаковку и привидение к ArrayList

Если мы запустим свою программу, то увидим весь список содержащийся в нашей коллекции:

Обновлено: 26.05.2019 — 14:17

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.