2010-01-29 2 views
0

У меня есть эти ListBox эс .. все они DataBind ред к той же таблице, и они находятся в типа табличного образом, каждая строка соответствует его фактическому значению в datbase. Когда я переключаю выбор (SelectedIndexChange) на любой из этих ListBoxes i изменениеSelectedIndex всего остального ListBox es.C# DataBinded ListBoxes - сортировка Issue

alt text http://www.deviantart.com/download/152153617/A_piece_from_my_softs____by_junaid_saeed.png

Теперь я не могу просто выбрать «Сортировка = истина» для любого из ListBox, так как это значения в ListBox эс не будет соответствовать их фактическим значениям в других ListBox эс. Я хочу предоставить возможность сортировать Acoording на один из ListBox, сохраняя при этом соответствующие соответствия. КАК ДЕЛАТЬ. Все предложения.

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

ответ

1

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

+0

Yah, что wud было легко, но ListBox случается с «Documented Specification» для этого. Я могу покинуть Сортировку, но я не могу переупаковать ListBox :) – Moon

+0

И вы не можете задать вопрос по спецификации, хотя это не имеет никакого смысла? –

0

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

т.е .:

Вместо привязки данных непосредственно к ListBoxes, создать список <> из DataRows (или ваш собственный пользовательский объект). Когда вам нужно отсортировать список, вызовите метод .Sort() в списке <> для любого свойства/столбца, который вам нужен, а затем очистите списки ListBoxes, повторно запишите их на основе вашего списка <> (возможно, добавив ListItems в время для каждого окна), а затем исправить SelectedIndex (ы) ListBoxes.

Делая это таким образом, вы никогда не теряете связь между строками ListBoxes.

+0

это именно то, чего я избегаю ... – Moon

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