C # WPF Динамически создается группа элементов управления WPF

1

Скажем, что у меня есть класс, например:

Public MyChart
{
  private string ChartName{get; set;}
  private List<MyChartSeries> ChartSeries{get; set;}
}

И затем под моей ViewModel у меня есть public List <MyChart> Charts

Что я сделаю, так это то, что я использую Chart Name для создания нового TextBlock, который будет содержать это строковое значение (что-то вроде заголовка), а затем под ним я создам новую диаграмму, которая будет заселена из ChartSeries (она будет сложнее, но для объяснения целей это достаточно хорошо).

Количество графиков может варьироваться в зависимости от входного файла. Я могу создать эту "группу элементов управления" через код; однако я считаю, что должен быть каким-то образом, как сделать это динамически с помощью шаблона MVVM (так что мне не нужно вручную перебирать коллекцию Charts и делать все самостоятельно).

Я хотел бы попросить руководство, как начать с этого, поскольку я никогда не делал этого раньше... поэтому я даже не знаю, с чего начать. Я знаю, что мне, скорее всего, придется создать UserControl, но это почти все.

  • 2
    Начните читать здесь: Обзор шаблонов данных .
  • 0
    Таким образом, вы предлагаете, чтобы я настроил свой ListBox DataTemplate для отображения диаграмм вместо текста?
Показать ещё 2 комментария
Теги:
xaml
wpf
mvvm

1 ответ

0
Лучший ответ

Используйте элемент управления ItemsControl. В вашем случае itemcontrol внутри ItemsControl, где верхний будет иметь DataSource databoumd для диаграмм, а внутренний - ChartSeries

В mvvm вместо создания элементов в xaml вы создаете только ItemTemplate и задаете ItemsSource. Затем Wpf создаст для вас элементы. Если вы использовали ObservableCollection вместо List, вы можете динамически добавлять и удалять диаграммы и диаграммы, а ItemsControl автоматически создавал и удалял элементы в ui.

  • 0
    Возможно, у вас есть ссылки, которые помогут мне понять это? Я не совсем уверен, что я полностью понял эту концепцию
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню