Управление 3-мя состояниями "развернуто", "свернуто" и "полуразвернуто" - PullRequest
1 голос
/ 23 августа 2010

То, что я пытаюсь сделать, - это расширение дерева состояний 3.

У меня есть три разных значка для «развернуть», «свернуть», «полуразвернуть», которые я хочу использовать, чтобы показать частичнозаполненный элемент управления деревом со всеми узлами, инициализированными в полуразвернутое состояние, а затем при нажатии на значок «полуразвернутый» он получает данные с сервера, заполняет дерево и открывает эту ветвь с помощью значка «развернутый».искал его, но не мог найти ничего похожего, кроме флажка с 3 состояниями, но не знаю, как использовать его на значке 3 состояний, когда дерево будет поддерживать только 2 состояния.

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

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Я думаю, то, что вы ищете, называется ленивым деревом. Есть много примеров, которые вы можете найти в Google, но здесь является отличным примером.

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

Это помогает?

1 голос
/ 23 августа 2010

Элемент управления с тремя состояниями немного необычен и поэтому может быть немного запутанным; Учтите, что даже простые флажки с тремя состояниями встречаются относительно редко, и пользователи могут к ним не привыкать. Может быть, поэтому вы не нашли такой элемент управления деревом.

Таким образом, возможно, вам следует подумать об использовании альтернативного дизайна, который не требует управления с тремя состояниями.

Например, узел может начинаться в свернутом узле. Если пользователь расширяет его, а данных еще нет, покажите один подузел с текстом «извлечение данных ...» (и колесо прогресса или другой индикатор прогресса, если можете) и начните поиск данных. Когда данные поступят, замените этот подузел фактическими данными.

...