WPF c # динамически переключает Itemtemplate при изменении класса объекта - PullRequest
0 голосов
/ 22 октября 2010

У меня есть следующий сценарий: WPF Treeview отображает пользовательские объекты, каждый из которых содержит список дочерних объектов. Итак, проблема в следующем: Каждый из пользовательских объектов управляется комбинированным списком, который может изменить текущий объект с класса A на класс B / C / D и наоборот. Классы A-D являются подклассами суперкласса. Все идет нормально. Каждый класс должен быть представлен определенной Dateatemplate в древовидном представлении WPF, поэтому каждый раз, когда пользователь меняет класс объекта (используя inline-combo), элемент должен применять новый шаблон. Пока я пробовал:

  1. Класс селектора DataTemplate (применяется только при запуске)
  2. "обнуление" DatatemplateSelector в виде дерева и повторное его применение после изменения объекта (слишком медленно)
  3. Матрица данных по классам (x: Type) (работает, но мне нужно три разных шаблона для каждого объекта, один рисунок, один минимум, одна максимальная ширина отображения с дополнительными текстовыми блоками)
  4. Datatrigger (я не знаю, как привязать его к измененному классу)

Возможно, это какая-то систематическая ошибка. Ваша помощь очень ценится

Greets

Markus

1 Ответ

0 голосов
/ 22 октября 2010

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

...