2

一見簡単な問題に苦しんでいます。データテーブルにバインドされたデータグリッドがあります。この 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 です。

4

1 に答える 1