none
MVVM и динамическое создание Контролов RRS feed

  • Вопрос

  • Добрый день.

    используя ListView и коллекции привязанные к ListView работает используя MVVM.

    Как решить следующую задачу. Есть база в ней например 10 строк

    Необходимо при загрузке UserControl _а создать 10 кнопок. Content каждой кнопки равен значению одного из полей взятых из базы.

    Как построить View если данные я буду брать только во время выполнения?

    Спасибо

    8 июня 2016 г. 17:59

Ответы

  • Добрый день.

    Есть замечательный контрол ItemsControl которому вы можете в ItemsSource подсунуть вашу коллекцию и задать DataTemplate который будет отображать кнопку.

    • Помечено в качестве ответа DevingAs 9 июня 2016 г. 10:02
    Отвечающий

Все ответы

  • Добрый день.

    Есть замечательный контрол ItemsControl которому вы можете в ItemsSource подсунуть вашу коллекцию и задать DataTemplate который будет отображать кнопку.

    • Помечено в качестве ответа DevingAs 9 июня 2016 г. 10:02
    Отвечающий
  • DevingAs я помню как вы начали изучать WPF и какие вопросы у вас изначально возникали. Помню как к вам приходило все большее понимание вопроса, но в какой то момент вас понесло не в ту сторону и вы стали забывать основные принципы WPF.

    Поясню - в WPF создавать свой UserControl нужно только, если имеющиеся не дают нужного функционала. Еще понятнее так - если у имеющихся нет нужных свойств или методов. Вопросы внешнего вида решаются исключительно шаблонами.

    На картинке показан CheckBox с измененным шаблоном. Как видите с помощью одних только шаблонов можно добиться кардинального изменения контрола.


    VB.Net - WPF, UWP

    Отвечающий
  • Мне свой контрол не нужен. Мне нужно создать n-е количество кнопок. Их количество заранее не известно. Их количество равно количеству строк в базе.

    Например:

    1 Фильтр по имени

    2 Фильтр по фамилии

    3 Фильтр по отчеству и т.д.

    Это количество может меняться. Меня устраивает стандартная кнопка. Но заранее создать разметку с нужным количеством кнопок не могу. Т.к. точное количество узнаю тогда когда загружу коллекцию. Создать это всё без MVVM вопросов не возникает. А вот как это более приглядно создать с паттерном MVVM уточнил. Буду штудировать ItemsControl

    Спасибо.

    9 июня 2016 г. 10:11
  • С ним все тоже самое, что и с ListView, не даром ListView является потомком ItemsControl.
    9 июня 2016 г. 10:57
    Отвечающий