Я борюсь с, казалось бы, простой проблемой: у меня есть сетка данных, которая привязана к таблице данных. Эта таблица данных содержит столбец с именем «COLORSTATUS» (значение перечисления) — я хочу раскрасить каждую строку таблицы данных в зависимости от ColorStatus. Я попытался создать преобразователь значений, но я не могу передать ему всю строку и/или Datatable. Я думал о подключении событий DataGridRow к сообщениям Caliburns, но как это сделать в XAML - все, что я могу получить, это элементы DataGrid.RowStyle.
<DataGrid x:Name="excelDataTable_ExcelData" cal:Message.Attach="[Event AutoGeneratedColumns] = [Action HideTheColorColumn($source)]">
?? What to do here
</DataGrid>
Я остановился на этом решении:
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding Row, Converter={StaticResource ExcelRowColorConverter}}"></Setter>
</Style>
</DataGrid.RowStyle>
Я был немного удивлен, что вы можете пройти "Ряд". Как подсказка для преобразователя: переданный объект является фактическим DataRow.