In an autogenerated datagrid column, I want to replace a certain value (-1) with blank.
I created an IValueConverter:
<ValueConversion(GetType(DataRowView), GetType(String))>
Public Class UsageConversion
Implements IValueConverter
Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Dim model As ProgModel = DirectCast(value, ProgModel)
If model.Usage = -1 Then
Return ""
Else
Return model.Usage.ToString
End If
End Function
Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Return Nothing
End Function
End Class
And bound it into the OnAutoGeneratingColumn method:
Dim dgtc As DataGridTextColumn = TryCast(e.Column, DataGridTextColumn)
If dgtc IsNot Nothing Then
Dim UsageBinding = New Binding()
UsageBinding.Converter = New UsageConversion
Dim tbStyle As New Style
tbStyle.TargetType = GetType(TextBlock)
tbStyle.Setters.Add(New Setter(TextBlock.TextProperty, UsageBinding))
dgtc.ElementStyle = tbStyle
End If
The OnAutoGeneratingColumn runs well, but the Convert code does not run - setting a breakpoint in it shows it is never called.
Any ideas why?
I am using .Net 4.0
Thanks!