IsSetData в gridcontrol никогда не имеет значения true при нажатии на элемент checkEdit - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть DevExpress GridContro l, который я добавил двумя колонками: один содержит repositoryItemCheckEdit, а другой - нормальное описание string.

Теперь я сделал repositoryItemCheckEditнесвязанный bool в разделе свойств и добавил событие gridView1_CustomUnboundColumnData, которое срабатывает с e.IsGetData true, но e.IsSetData никогда не будет true, когда я нажимаю на флажок.Кто-нибудь может объяснить, почему это так?Спасибо

private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
{
  if (e.IsGetData)
  {
    string itemKey = ((CategoryTable)(gridControl1.ViewCollection[0]).GetRow(e.RowHandle)).Category;
    if (AddressDoc == itemKey) e.Value = true
    else e.Value = false;
  }

  if (e.IsSetData)
    AddressDoc = ((CategoryTable)(gridControl1.ViewCollection[0]).GetRow(e.RowHandle)).Category;
}

1 Ответ

0 голосов
/ 06 апреля 2011

Пожалуйста, попробуйте решение из Как сохранить значение флажка на месте, как только оно будет изменено Статья базы знаний, опубликованная на нашем веб-сайте. Это должно помочь вам решить эту проблему. Кроме того, я просмотрел ваш код, и он не выглядит безопасным. Я бы изменил это следующим образом:

private void gridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) {
            GridView gridView = sender as GridView;
            DataView dv = gridView.DataSource;
            object c = DataView[e.ListSourceRowIndex]["Category"];
            string itemKey = c == null ? "" : c.ToString();
            if (e.IsGetData) {
                if(AddressDoc == itemKey)
                    e.Value = true;
                else 
                    e.Value = false;
            }
            if(e.IsSetData)
                AddressDoc = itemKey;
        }

Я могу только думать, что вы не правильно настроили несвязанный столбец. ПРИМЕЧАНИЕ: столбец должен удовлетворять двум обязательным условиям, чтобы быть свободным: 1) его FieldName должно быть установлено на уникальное значение среди свойств fieldName других столбцов GridView; 2) для столбца UnboundType должно быть задано значение без границ.

...