Здравствуйте!
Я пытаюсь раскрасить объекты в зависимости от значения некоторого поля. однако при отрисовке изображения программа зависает. никаких сообщений об ошибках (кроме таймаута) не возникает.
Что я делаю не так? как правильно пользоваться UniqueValueRenderer? где можно об этом подробно почитать, желательно на русском языке?
вот код:
public string HighlightLayerByField(string Layer, string Field)
{//метод для подсветки объектов слоя в зависимости от значения поля.
// часть кода, не имеющая отношения к настройке UniqueValueRenderer удалена
…
//создаем новый (временный) слой, который затем рисуем поверх базового
IFeatureLayer fl = sc.CreateObject("esriCarto.FeatureLayer") as IFeatureLayer;
fl.FeatureClass = baselayer.FeatureClass;
…
IGeoFeatureLayer gfl = nfl as IGeoFeatureLayer;
//получаем список уникальных значений для поля
IQueryDef query = GetQueryDef(fws,"SELECT DISTINCT(" + Field + ") FROM " + table);
ICursor fcur = (ICursor)query.Evaluate();
//генерируем цвета
IRandomColorRamp rx = GetRandomColorRamp();
//создаем и настраиваем renderer
IUniqueValueRenderer renderer = sc.CreateObject("esriCarto.UniqueValueRenderer") as IUniqueValueRenderer;
renderer.FieldCount = 1;
renderer.set_Field(0,Field);
IRow row = null;
while( (row = fcur.NextRow()) != null )
{
&