2009-12-23 4 views
0

Я новичок в WPF, и мне интересно, как наилучшим образом достичь сетки основных деталей, как показано ниже.WPF Control Puzzle

Пользователь может нажать клавиши со стрелками вправо/влево, чтобы открыть/закрыть родителей или щелкнуть по значку, чтобы достичь того же результата. Структура данных будет глубиной уровня 1 родителя/ребенка.

Как бы я это сделал?

------------------------------------- 
Parent1 (P1)      ^
------------------------------------- 
P1 - Child 1  
------------------------------------- 
P1 - Child 2 
------------------------------------- 
Parent2 (P2)      ^
------------------------------------- 
P2 - Child 2 
------------------------------------- 
Parent3 (P3)      > 
------------------------------------- 

Заранее спасибо ...

ответ

3

несколько возможностей:

  • Используйте TreeView, с подходящим HierarchicalDataTemplates для родительских и дочерних уровней. Я считаю, что это будет обращаться со стрелками для вас, но вам, возможно, придется сделать более обширные шаблоны для правильного выравнивания (свойство ItemContainerStyle и TreeViewItem.Template будет отправной точкой).
  • Используйте элемент ItemsControl, и ваш ItemTemplate включает расширитель. Заголовок Expander будет показывать родителя. Содержимое Expander было бы другим элементом ItemsControl, связанным с дочерними элементами и с его ItemTemplate, установленным в соответствующее подробное представление. Опять же, вам, вероятно, понадобится шаблон Expander, чтобы поместить значок «expand/collapse» справа, а не его положение по умолчанию слева. Думаю, вам придется самому манипулировать клавишами со стрелками. Преимущество состоит в том, что это, естественно, даст вам «стек» выравнивание (стиль аккордеона), а не отступы.
+0

Спасибо, я думал о Treeview [1], но что-то не сработало со мной, используя его для этой сетки, отступы перешли мне в голову. Я буду смотреть дальше в ItemsControl, спасибо за ввод. [1] http://msdn.microsoft.com/en-us/library/system.windows.hierarchicaldatatemplate.aspx – Burt