Создать собственную динамическую легенду для DevExpress GridView - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть DevExpress GridView, чьи ячейки окрашены случайным цветом в зависимости от некоторых условий.Теперь у каждого цвета есть значение, и я хочу показать его как легенду.Количество цветов, используемых для каждого условия, может варьироваться.

Как я могу это сделать.Пожалуйста, помогите.

Я использую DevExpress 2009 Vol2, и .Net Framework - 2.0 и WinForms

1 Ответ

1 голос
/ 25 февраля 2012

Вы можете попробовать использовать другой GridControl.DataSource был бы следующим простым классом:

class Legend
{
    public Legend(string caption, Color color)
    {
        Caption = caption;
        Color = color;
    }

    public string Caption { get; set; }
    public Color Color { get; set; }
}

Вы должны заполнить его при создании списка цветов;Я не знаю ваших настроек, поэтому, например,

gridControl1.DataSource = new List<Legend> 
{
    new Legend ( "First", Color.AliceBlue), 
    new Legend ( "Second", Color.Azure), 
    new Legend ( "Third", Color.Bisque) 
};

GridControl будет иметь два столбца, один для цвета и второй для заголовка.Вы должны установить для свойства ColumnEdit первого столбца значение ColorEdit.Чтобы избежать отображения имени цвета, установите свойство ForeColor в AppearanceCell прозрачным.Также установите FixedWidth в OptionsColumn в true и Width в какое-нибудь симпатичное число (32 для моей системы).

Вид должен быть недоступен для редактирования (OptionsBehavior.Editable = false), и фокус не должен использовать свой собственный вид (OptionsSelection.EnableAppearanceFocusedRow =ложный).Кроме того, вы можете скрыть заголовок, скрыть индикаторы строк, запретить GridControl получать фокус и т. Д.

Надеюсь, это поможет, даже если он прибудет на две недели позже.

...