2013-04-09 2 views
0

Мне нужно реализовать список, настроенный, как показано ниже. Вы должны иметь возможность сортировать элементы в заданном поле, нажав на заголовок. Линия также должна быть расширяемой. Когда пользователь нажимает кнопку «+», линия должна раскрывать и раскрывать дополнительную информацию под своим значением field2.Как реализовать настраиваемый сортируемый и расширяемый список в WPF

my need :

Я пытался использовать ListView в GridView. Для каждого столбца я определил шаблон (шаблон для значений field1 с символом + слева, один для значений поля 2 и один для значений поля 3). С этой реализацией моя проблема заключается в «расширении одной линии».

Я также рассмотрел компонент ListBox, но мне нужно создать заголовки вручную и выровнять содержимое. Мне также нужно сортировать вручную. Кажется, это не лучшее решение для меня.

Есть ли у вас идея лучше или какие-либо советы?

ответ

1

Если я правильно понял, «развернуть» вы хотите показать sth под строкой (или, в частности, элементом списка)?

Если это так, в вашем шаблоне данных добавьте стеквую панель, например, и измените ее видимость на collaped;

, нажав на кнопку «+», измените изображение на рулон.

<ListView ...> 
    <ItemTemplate> 
     <GridView ...> 
      <Button Name="ExpandButton Click="OnClick"/> 
     <StackPane Visibility={Binding SomeProperty} /> 
    <Itemtemplate> 
</ListView> 

В Onclick измените свойство SomeProperty = Visibility.Visible. Я предполагаю, что вам удобно привязывать данные в WPF.

+0

Я пробовал это решение, но мне не удалось получить ссылку между кнопкой и соответствующей панелью стека ... Знаете ли вы, как это сделать? – Alytrem

+0

Просмотреть мои обновления. – David

2

Правильное управление базой выглядит как DataGrid. Он предоставит вам такую ​​функциональность, как сортировка по заголовкам и т. Д.

Вам нужно будет изменить его ControlTemplate через стиль, если вы хотите, чтобы он выглядел на скриншоте.

В качестве вдохновения, как вы могли бы Г.Е. расширение деталей, следующая статья может вам помочь:

Grouping in DataGrid in WPF

Вы можете также рассмотреть вопрос, имеющий вид на DataGrids третьей стороны, в случае, если стандартный DataGrid Безразлично» t покрывает все ваши потребности, но с индивидуальным Templating вы можете получить довольно далеко.

+0

WPF DataGrid также имеет расширяемый вид сведений, доступный для каждой строки. Шаблон - это свойство: 'DataGrid.RowDetailsTemplate'. – Anders

Смежные вопросы