У меня есть ListView:
<ListView ItemsSource="{Binding ModuleList}">
<!--<DataTemplate>
<StackPanel VerticalAlignment="Top" Margin="10,0,0,0">
<Image Source="{Binding ModuleImage}" Stretch="UniformToFill"/>
<TextBlock Text="{Binding ModuleName}"/>
</StackPanel>
</DataTemplate>-->
</ListView>
Этот ListView привязан к ModuleList:
public List<Module> ModuleList
{
get => modulList;
set
{
modulList = value;
OnPropertyChanged();
}
}
В списке хранятся объекты типа Module
, класс, в котором хранится строка Name
, изображение ModuleImage
и строка ModuleType
:
public class Module
{
public Image ModuleImage { get; set; }
public string Name { get; set; }
public string ModuleType { get; set; }
}
и, наконец, у меня есть еще один класс ModuleLoader
, который создает для меня объекты-модули. Модули представляют собой zip-файлы, названные так же, как модуль (например, Input.zip
). Там у меня есть изображение и json, где хранятся Name и ModuleType. Затем ModuleLoader
распаковывает модули, создает Module
с json и добавляет путь изображения к этому объекту.
ModuleList
заполняется следующим образом:
//Unzips all modules into the Temp-Folder
modulLoader.LoadAllModules();
//Creates the object of type Module and adds the image path
modulList = modulLoader.GetAllModules();
Теперь, когда я раскомментирую среднюю часть моего Xaml, я получаю исключение после того, как ModuleList был полностью создан (конструктор находится в конце)
Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead
когда
get => modulList;
вызывается