Я использую архитектуру MVVM, и я хочу изменить цвет строки в datagrid. Цвет строки зависит от элемента модели.Строка DataGrid Цвет фона MVVM
до сих пор у меня есть этот код:
private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e) {
Log4NetLog dataGridRow = e.Row.DataContext as Log4NetLog;
if (highlight) {
if (dataGridRow != null) {
e.Row.Background = new SolidColorBrush(
dataGridRow.LogColour.Colour);
}
} else {
e.Row.Background = new SolidColorBrush(Colors.White);
}
}
Как вы можете видеть, во второй линии я должен сделать ссылку на Log4NetLog
, который находится в модели.
Так как я могу изменить код для адаптации шаблона MVVM?
Можете ли вы разместить больше кода для этого? Откуда взялась подсветка? Чтобы сделать это, адаптируя шаблон MVVM, вы можете установить шаблон DataGridRow для изменения значения цвета фона на основе привязки к свойству в DataContext ViewModel. Ознакомьтесь с http://msdn.microsoft.com/en-us/library/cc278066%28v=vs.95%29.aspx. – Dutts
highlight - это просто логическое ... вы можете просто игнорировать его. его не imoportant – RayOldProf
Хорошо, но по существу вам нужно некоторое свойство в вашей модели viewmodel, с которой вы можете привязать, через ValueConverter, чтобы вернуть цвет. – Dutts