2013-11-26 9 views
1

В моем приложении я строю все строки и столбцы для DataGrid программно. Теперь я хотел бы контролировать различные аспекты пользовательского интерфейса, такие как цвет, шрифт, размер шрифта, границы и т. Д. Программно для каждой ячейки. Мне интересно, есть ли какое-либо событие на ячеек, которое я могу добавить для обратного вызова и установить все аспекты на основе каждой ячейки. Примером может служить большая оценка.WPF datagrid - пользовательские цвета для каждой ячейки

Заранее благодарю вас за помощь.

+2

вы знаете о системе шаблонного WPF? Я бы подумал о том, чтобы использовать шаблоны для достижения этого - я уверен, что он будет охватывать стиль уровня ячейки в datagrid (возможно, я ошибаюсь!) – Charleh

ответ

0

думаю есть. У меня была та же проблема, что и вы, и мое решение заключалось в создании моего собственного столбца и переопределении GenerateElement. Я покажу вам код, я могу:

<cdgc:ColorTextColumn Binding="{Binding value}" 

И потом:

protected override System.Windows.FrameworkElement GenerateElement(System.Windows.Controls.DataGridCell cell, object dataItem) 
    { 
     var text = new TextBlock(); 
     text.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; 
     text.SetBinding(TextBlock.TextProperty, this.CopyBinding(this.DataBinding, null, null, null)); 

     text.Foreground = (System.Windows.Media.Brush).....; 

     return text; 
    } 

Как вы можете видеть, что я установить связывание ранее и поддерживается в генерации клеток

Смежные вопросы