WPF Control Puzzle - PullRequest
       8

WPF Control Puzzle

0 голосов
/ 24 декабря 2009

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

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

Как бы я поступил по этому поводу?

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

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

1 Ответ

3 голосов
/ 24 декабря 2009

Пара возможностей:

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