|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Один из элементов List<картинка> вызывает событие, как узнать его номер в массиве? Варианты: 1. создать поле непосредственно в классе Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
вне контекста массива не понятно, что это за поле. Также можно было бы создать классический object Tag, но не читаемо, что в нём находится. В общем, если никак не получится, то именно так и придётся делать. 1. вот именно каким-то таким я вижу решение (код, конечно, не рабочий) Код: c# 1. 2. 3. 4. 5. 6.
Это, конечно, новое слово в синтаксисе C#, но суть в том, чтобы узнать номер объекта на этапе обработки события, а сам объект о своём номере не знает. Или это не логично? Как в таких случаях обычно поступают? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 10:14 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Ну варианта два. Или добавлять избыточность, где-то дополнительно хранить индекс картинки. Наверное, лучше в самой картинке. Тогда при изменении порядка картинок избыточность придётся актуализировать. Или каждый раз искать индекс "на лету" через списокКартинок.IndexOf(картинка) . Тогда избыточночти не будет, но поиск может снизить производительность. А зачем нужен индекс? Чтобы иметь доступ к следующей/предыдущей картинке? Если да - может попробовать направленный список? Код: c# 1. 2. 3. 4. 5. 6.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 10:28 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Нужно просто найти этот элемент в списке или принципиально узнать его "номер"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 10:44 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
МСУНужно просто найти этот элемент в списке или принципиально узнать его "номер"? Нужен именно номер, т.к. эти объекты визуализируются на форме и от того, как отобразится 5-й, зависит то, как отображать 6й,7й, ... Грубо говоря, представь себе, что каждый объект - это столбец в таблице, у которой все колонки автоматически выравниваются по ширине таблицы. Если в таблице 7 колонок, ты уменьшаешь ширину 5-й, то 6-я и 7-я должны увеличиться пропорционально. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 10:53 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Алексей КИли каждый раз искать индекс "на лету" через списокКартинок.IndexOf(картинка) . Да, я так думаю, что это именно то, что нужно! Алексей КЧтобы иметь доступ к следующей/предыдущей картинке? Если да - может попробовать направленный список? Не, необходим произвольный доступ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 11:06 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Charles WeylandМСУНужно просто найти этот элемент в списке или принципиально узнать его "номер"? Нужен именно номер, т.к. эти объекты визуализируются на форме и от того, как отобразится 5-й, зависит то, как отображать 6й,7й, ... Грубо говоря, представь себе, что каждый объект - это столбец в таблице, у которой все колонки автоматически выравниваются по ширине таблицы. Если в таблице 7 колонок, ты уменьшаешь ширину 5-й, то 6-я и 7-я должны увеличиться пропорционально.Ну то есть если изменился элемент списка, то надо весь список тупо перерисовать. Зачем при этом знать индекс изменившегося элемента? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 12:03 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Charles WeylandМСУНужно просто найти этот элемент в списке или принципиально узнать его "номер"? Нужен именно номер, т.к. эти объекты визуализируются на форме и от того, как отобразится 5-й, зависит то, как отображать 6й,7й, ... Грубо говоря, представь себе, что каждый объект - это столбец в таблице, у которой все колонки автоматически выравниваются по ширине таблицы. Если в таблице 7 колонок, ты уменьшаешь ширину 5-й, то 6-я и 7-я должны увеличиться пропорционально. Всё-равно я не понимаю, зачем индекс знать. Если что-то изменилось, всегда можно найти по "идентификатору" элемента. Но если нужен индекс, кури IndexOf, как уже сказал Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 12:26 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
skyANAНу то есть если изменился элемент списка, то надо весь список тупо перерисовать Нет. Если изменился элемент списка, то остальные элементы списка (которые по индексу больше текущего) нужно также немного подредактировать. И только потом их все перерисовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 13:39 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
МСУЕсли что-то изменилось, всегда можно найти по "идентификатору" элемента. Это к решению номер 1. Я хотел примерно так поступить (создать поле public object Tag), если не найду другого способа. Но сделал всё-таки вот так: МСУНо если нужен индекс, кури IndexOf, как уже сказал Алексей. спасибо за помощь)) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 13:40 |
|
Один из элементов List<элемент> вызывает событие, как узнать его номер? Варианты:
|
|||
---|---|---|---|
#18+
Charles WeylandskyANAНу то есть если изменился элемент списка, то надо весь список тупо перерисовать Нет. Если изменился элемент списка, то остальные элементы списка (которые по индексу больше текущего) нужно также немного подредактировать. И только потом их все перерисовать.Ну найдёте Вы индекс при помощи IndexOf и толку? Получится, что сначала будут перебраны элементы от первого, до того, что изменился, чтобы найти индекс. Потом будут перебраны элементы, у которых индекс больше текущего, чтобы немного их подредактировать. То есть в итоге будут перебраны все элементы списка. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2013, 14:38 |
|
|
start [/forum/topic.php?fid=20&msg=38370731&tid=1404195]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 504ms |
0 / 0 |