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 インターフェイスを実装するオブジェクトに依存していますか?
ご協力いただきありがとうございます!