Ошибка в случайном поведении сетки данных при прокрутке в Silverlight 4.0

#silverlight-4.0 #datagrid

#silverlight-4.0 #сетка данных

Вопрос:

У меня есть сетка данных, и ее строки окрашены в зависимости от определенных условий..Для моей сетки данных есть вертикальная полоса прокрутки.. Если пользователь прокручивает сетку данных, индекс цветных строк r изменяется.. Например: если 2 строки окрашены, то при прокрутке пользователем вниз и переходе вверх индекс цветной строки искажается…

вот код….

  dggeneralconfiguration.LoadingRow  = new EventHandler<DataGridRowEventArgs>(grid1_LoadingRow);
                dggeneralconfiguration.UnloadingRow  = new EventHandler<DataGridRowEventArgs>(grid1_UnloadingRow);
void grid1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            ShowGeneralGrid c = e.Row.DataContext as ShowGeneralGrid;

            if (c.Status == false)
            {
                if (e.Row != null)
                {
                    e.Row.Background = new SolidColorBrush(Colors.Red);
                    //e.Row.Background = new SolidColorBrush(Colors.Transparent);
                }
            }
        }
        void grid1_UnloadingRow(object sender, DataGridRowEventArgs e)
        {
            ShowGeneralGrid c = e.Row.DataContext as ShowGeneralGrid;

            if (c.Status == false)
            {
                if (e.Row != null)
                {
                    e.Row.Background = new SolidColorBrush(Colors.Red);
                    //e.Row.Background = new SolidColorBrush(Colors.Transparent);
                }
            }
        }
  

Ответ №1:

Лучше поздно, чем никогда. 😉 . У меня тоже была похожая проблема .. попробуйте присвоить row background значение null при выгрузке события row.

     private void dg_UnloadingRow(object sender, DataGridRowEventArgs e)
    {
        e.Row.Background = null;
    }