1

DevExpress のグリッド コントロールを使用しています。グリッドを DataView にバインドしました。

m_dvResponses = New DataView(...)
m_dvResponses.Sort = "SEQUENCENUMBER"

GridResponses.ItemsSource = m_dvResponses

すべてがうまくいくようです。基礎となるデータが変更されると、グリッドが自動的に更新されるので、これで問題ありません。

問題は、特定の列で Converter を使用して一部のセルに色を付けることです。

<dxg:GridColumn FieldName="AGENCYNAME" CellStyle="{StaticResource AgencyCellStyle}"/>

<Style x:Key="AgencyCellStyle" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=CellStyle}}" TargetType="{x:Type dxg:CellContentPresenter}">
        <Setter Property="BorderThickness" Value="8,0,0,0"/>
        <Setter Property="BorderBrush" Value="{Binding Path=RowData.Row, Converter={StaticResource AgencyBackgroundColorConverter}, ConverterParameter=AGENCY}" />
        <Setter Property="Foreground" Value="{Binding Path=RowData.Row, Converter={StaticResource AgencyForegroundColorConverter}, ConverterParameter=AGENCY}" />
</Style>

データが変更されると、値は更新されますが、コンバーターは実行されないようです。コンバーターは、グリッド自体が描画されるときにのみ実行されます。

前 ...

後 ...

コンバーターが更新時に起動しなかったため、新しい「p1」がどのように色付けされていないかに注意してください。

私の質問は次のとおりです。データが更新されると、DataView はコンバーターをトリガーしますか? コンバーターは、INotifyPropertyChanged インターフェイスを実装するオブジェクトに依存していますか?

ご協力いただきありがとうございます!

4

0 に答える 0