Список в Resource.XAML и доступ в ViewModel
Как создать список в resources.xaml (я буду использовать его в качестве источника элементов для моего списка) и как я могу получить к нему доступ во ViewModel? Спасибо
2 ответа
Это может помочь: Silverlight: Объявление коллекции данных в XAML?
Затем вы можете получить к нему доступ, используя свойство Resources элемента управления, в котором вы объявляете коллекцию.
РЕДАКТИРОВАТЬ Например:
Вам нужно объявить новый тип коллекции, так как вы не можете объявить универсальный тип в XAML:
using System.Collections.Generic;
namespace YourNamepace
{
public class Genders : List<string>
{
}
}
Затем вы объявляете список в XAML после добавления необходимых пространств имен:
xmlns:local="clr-namespace:YourNamespace"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
<Window.Resources>
<local:Genders x:Key="AvailableGenders">
<sys:String>Female</sys:String>
<sys:String>Male</sys:String>
</local:Genders>
</Window.Resources>
Конечно, вы можете объявить это с более сложными структурами данных внутри. Затем используйте это как ItemsSource вашего ListBox:
<ListBox ItemsSource="{Binding Source={StaticResource AvailableGenders}}"/>
Это работает, я только что проверил:-)
Добавляя к ответу @JerimyGilbert, вы можете заполнить список из класса и использовать его непосредственно из XAML следующим образом:
using System.Collections.Generic;
namespace YourNamepace
{
public class Genders : List<string>
{
public Genders()
{
Add("Male");
Add("Female");
}
}
}
<Window.Resources>
<local:Genders x:Key="Genders"/>
</Window.Resources>
<ListBox ItemsSource={Binding Source={StaticReource Genders}}/>