Хорошо, вот некоторый фактический код, который может вам помочь.
Я буду использовать несколько концепций WPF, которые вы, возможно, захотите изучить дальше: DataBinding, DataTemplates, ImageSources, ObservableCollections
Сначала вам нужно создать (если у вас его еще нет) базовый класс для ваших Вопросов. Самое простое, что вы можете получить, было бы примерно так:
internal class Question
{
public ImageSource QuestionImage { get; set; }
public string QuestionText { get; set; }
}
Затем в коде вашего экрана (да, мы еще не в MVVM), вы должны создать ObservableCollection of Question и добавить их в свои вопросы.
У меня есть что-то вроде этого:
public ObservableCollection<Question> Questions { get; private set; }
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Questions = new ObservableCollection<Question>();
for (int i = 1; i <= 10; i++)
{
var newQ = new Question { QuestionText = "intrebarea " + i.ToString(), QuestionImage = _get your image as a ImageSource here_ };
Questions.Add(newQ);
}
}
- this.DataContext = это очень важно, иначе привязка данных не будет работать.
В области дизайна создайте список и свяжите его с созданной коллекцией вопросов. Способ отображения вопроса в списке определяется параметром ItemTemlpate, как показано ниже.
<ListBox ItemsSource="{Binding Questions}">
<ListBox.ItemTemplate>
<StackPanel>
<Image Source="{Binding QuestionImage}" Height="20" Width="20"/>
<TextBlock Margin="5" Text="{Binding QuestionText}" />
</StackPanel>
</ListBox.ItemTemplate>
</ListBox>
- Вы можете заменить имеющееся у меня содержимое UserControl или событие самого UserControl, но обязательно сохраните привязки к объектам в вашем классе Question.
Как я уже говорил выше, многие вещи могут не иметь смысла на этом этапе, поэтому обязательно прочитайте о них: что такое привязка данных, что такое DataContext, что такое ObservableCollection. Кроме того, попробуйте взглянуть на MVVM, когда у вас появится шанс ...
Наконец, если вы не знаете, как получить ImageSource, когда у вас есть jpg или png файл в вашем проекте:
public ImageSource GetImagesource(string location)
{
var res = new BitmapImage()
res.BeginInit();
res.UriSource = new Uri("pack://application:,,,/ApplicationName;component/" + location);
res.EndInit();
return res;
}