воскресенье, 9 августа 2009 г.

Танцы с бубнами.

Существует некоторый класс простых багов, которые могут запросто превратиться в головную боль, привести к срыву всех сроков и довести до нервного истощения. Чаще всего оказывается, что решение лежало на поверхности.

Вот например кусок XAML, который мучал меня почти сутки



Если попытаться записать ему DataContext из CodeBehind, вот так:

MainChart.DataContext = Sale.Data;

то можно поймать совершенно изумительное ВэллНоун исключение:
...................................................
.................................
................

Вот так всегда. Даже попытка повторить его не удалась. Спрашивается, с чем я боролся то сутки? Танцы с бубнами, да и только...

В общем исключение было следующим: "Collection was modified; enumeration operation may not execute". Как я его заборол не понимаю до сих пор. Код, вроде как, тот же. Раньше не работал, теперь работает.

Возможно нужно было убрать установку DataContext из шаблонов в XAML и все. Еще один вариант - необходимо явно указывать Binding на родительские элементы. А те в свою очередь необходимо инициализировать из XAML каким-то начальным значением. Что-то из этого работает.