2009-06-09 5 views

ответ

1

Единственный способ, которым я знаю, как это сделать, будет как трюк для рендеринга текстовых полей в сетке, используя трюк для рисования некоторых изображений по сетке.

Один из CF team posted something about customising the grid on their site.

0

Если вы можете использовать сторонние решения, взглянуть на Resco SmartGrid.

9

Как и другие плакаты, вы прокомментировали, что вам нужно сворачивать самостоятельно. К счастью, это не слишком сложно.

В моем приложении мне понадобился способ нарисовать значок 16x16 в определенном столбце. Я создал новый класс, который наследуется от DataGridColumnStyle, что упрощает применение к DataGrid через объект DataGridTableStyle.

class DataGridIconColumn : DataGridColumnStyle { 

public Icon ColumnIcon { 
    get; 
    set; 
} 

protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight) { 

    // Fill in background color 
    g.FillRectangle(backBrush, bounds); 

    // Draw the appropriate icon 
    if (this.ColumnIcon != null) { 
     g.DrawIcon(this.ColumnIcon, bounds.X, bounds.Y); 
    } 
    } 
} 

Вы можете видеть, что я определил общественную собственность ColumnIcon поэтому я могу указать значок, мне нужно, чтобы отобразить вне этого класса.

Теперь, на самом деле использовать его на DataGrid, вы бы сниппет как:

DataGridTableStyle ts = new DataGridTableStyle(); 

DataGridIconColumn dgic = new DataGridIconColumn(); 
dgic.ColumnIcon = Properties.Resources.MyIcon; 
dgic.MappingName = "<your_column_name>"; 
dgic.HeaderText = "<your_column_header>"; 

ts.GridColumnStyles.Add(dgic); 

this.myDataGrid.TableStyles.Add(ts); 

Это довольно простой пример применения DataGridTableStyle - я на самом деле сделать много дальнейшей настройки на остальная часть моих столбцов DataGrid. Но вам нужно начать с того, что вы хотите сделать.

+0

Если мне нужно загрузить изображение в ячейку ?? Как мне это сделать ? – user3383301