2013-12-10 6 views
0

Я хочу обновить столбец таблицы, который получил ~ 4k строк. Колонна должна получить дату родителя, так что я с помощью простого Еогеасп:Slow foreach() для обновления столбца

Parent.VariableDate = DateTime.Now; 
foreach (var item in Parent.ChildList) 
{ 
    item.vari = Parent.VariableDate ; 

} 

Проблема:

Это действие принимает возрастов. Могу ли я сразу обновить целый столбец?

+0

Не знаю 'WPF', но это имеет' 'BeginUpdate' или SuspendLayout' аналог? Старайтесь не обновлять свои изменения каким-то образом, возможно, создав весь список элементов unbound, а затем добавив его в элемент управления сразу. – Sinatr

ответ

0

Я не уверен, что вы получите очень много от написания этого любой другой путь. Лучшим вариантом, если это возможно в вашей ситуации (?), Может быть избежать использования VariableDate вообще в каждом элементе в ChildList, и просто обратитесь к Parent вместо этого, когда вам это нужно. Таким образом, вам не придется проходить через строки 4K.

Как представлено в вашем вопросе, каждый item.VariableDate кажется излишним ..

+0

yep, ссылка на родителя - хорошее решение. thx –

+0

Рад слышать, как это работает для вашей ситуации! :) – Kjartan

0

вы можете использовать Linq для этого

Parent.ChildList.foreach(p=>p.vari = DateTime.Now); 

это самый быстрый способ

+0

Вы уверены, что это обеспечит лучший, чем простой ForEach()? Кажется, единственная разница здесь в некоторых незначительных изменениях синтаксиса. – Kjartan

+0

нет Linq быстро, вы можете проверить, что – techloverr

+1

вы пробовали? – techloverr

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