Фрагменти (BME AUT)

Чрез примери от всякакъв вид

Често може да се случи, че трябва да покажем елементите на хетерогенна колекция в списък и всеки елемент от списъка трябва да изглежда различно, като показва различни свойства, независимо от конкретните типове. Нека сега разгледаме един илюстративен пример.

фрагменти

Списък

Елементите се съхраняват в ListView. Това не е необичайно за технологичните приложения на XAML. Първо, подробно описваме малко примера и неговата „приказка“.

Моделни класове

Имаме система за регистрация на птици. Следните характеристики на птиците се отчитат еднакво:

  • Име,
  • kor (Възраст),
  • Личност,
  • Удовлетворение. Може да е остатък
  • за хранене (Feed) и
  • страх (Scare) В резултат на храненето и плашенето, нашата птица варира по някакъв начин в скала от 1-5 в зависимост от вида. Личността е преброяване.

Често срещан интерфейс за описване на птици е IBird. Тъй като различните породи птици реагират по различен начин на храненето и плашенето, тяхното изпълнение е различно, те са поставени в отделни класове. Сега ще имаме клас Owl, Owl и Pigeon, Dove, който ще внедри интерфейса IBird.

Примерни данни

За по-голяма простота сега добавяме примерните данни към файла с код, не използваме шаблон на MVVM, целта не е да го опишем. Не забравяйте да зададете DataContext, да използвате ObservabeCollection като свойство за списъка и да го инициализирате!