powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeView с встроенным поиском
7 сообщений из 7, страница 1 из 1
TreeView с встроенным поиском
    #37606977
sergiy_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сделал контрол.
Зацените http://habrahabr.ru/blogs/net/135274/
Больше интересует мнение о коде.
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37608580
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergiy_s,
авторНе очень красиво иметь бизнес объекту IsSelected и IsExpanded.

Вполне нормально.
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37609098
sergiy_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну как бы
Есть концепция MVVM
Есть люди которые ее придерживаются ВОТ ИМ это И ОБЪЯСНИТЕ .

А с другой стороны ну вот есть у вас некий бизнес объект не вами разработанный и не предназначенный изначально для показа в дереве.
И изменить его вы не можете.
Мой метод тем и хорош что позволяет искать по любым объектам без того что бы приспосабливать эти объекты для показа в дереве.
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37610024
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergiy_s,

авторПоиск в объекта осуществлять по части строкового представления объекта в узле дерева.

Вот это не совсем понял. Чем это лучше поиска по ссылке?
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37610150
sergiy_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что такое поиск по ссылке??
Если имеется в виду сравнение объекта с другим объектом.
То со строкой объект в общем случае не сравнить. Не у всех метод ToString() переопределен.

Поиск по части строкового представления в моем понятии это сравнение свойства использованного для показа узла со строкой поиска.

Можно конечно развивать эту тему и искать по регулюхе или более сложный способ
задавать для разных свойств разные условия поиска.
Типа ID>20 and Value =4 or Name like ''%d%".
Пока такой задачи у меня не стояло. Но в принципе заморочиться можно.
Для этого например можно рефлексией получить все свойства объекта и по каждому из них позволить пользователю ввести информацию для поиска.
Однако может быть столько свойств, что обычный пользователь в них заблудится да и имена у них не всегда адекватные.
Следовательно нужно для каждого объекта задавать шаблон фильтра или указывать те свойства по которым строить фильтр.
Задача решаемая, но коэффициент использования этих наворотов думаю будет минимальным.
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37610245
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergiy_s,

По ссылке - это сравнивая ссылку на выделенный объект со ссылкой на объект в ItemsSource. Если равно, тогда раскрываем соответствующий узел.

Сравнивать можно с помощью - Object.ReferenceEquals(obj1, obj2). Или просто поиск в коллекции с помощью IndexOf.
А еще лучше используя метод Equals объекта. Который пользователь может переопределить как угодно.

В случае поиска по каким-то текстовым/числовым свойствам объекта - имхо, мало логики.
...
Рейтинг: 0 / 0
TreeView с встроенным поиском
    #37610285
sergiy_s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вы пример скачали? Запустить пробовали? Код смотрели?
Именно так как вы описали происходит установка SelectedItem у меня оно SelectedObject.
Это одна задача.
Есть другая задача.
Найти нужный узел по слову(части слова) в нем. Я ищу все узлы содержащие вхождение нужного слова.
Показываю их в комбобоксе.
Пользователь может по полному строковому представлению Выбрать нужный ему.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeView с встроенным поиском
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]