我正在使用DevExpress的网格控件。我已将网格绑定到DataView:
m_dvResponses = New DataView(...)
m_dvResponses.Sort = "SEQUENCENUMBER"
GridResponses.ItemsSource = m_dvResponses
一切似乎都很好。当基础数据发生变化时,网格会自动更新,因此很好。
问题是我使用特定列上的转换器为某些单元格着色:
<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接口的对象?
感谢您的帮助!