一見簡単な問題に苦しんでいます。データテーブルにバインドされたデータグリッドがあります。この Datatable には、「COLORSTATUS」(列挙値) という名前の列が含まれています。ColorStatus に応じて、Datatable のすべての行をペイントしたいと考えています。値コンバーターを構築しようとしましたが、行全体および/またはデータテーブルを渡すことができません。私はCaliburns MessagesでDataGridRowイベントを接続することについて考えました - しかし、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>
「Row」が通れるなんて、ちょっとビックリしました。コンバーターのヒントとして: 渡されたオブジェクトは実際の DataRow です。