В столбце с автогенерированным столбцом данных я хочу заменить определенное значение (-1) пустым.Почему IValueConverter не вызван для автогенерации DataGrid Столбец
Я создал 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
и обвили его в метод OnAutoGeneratingColumn:
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
OnAutoGeneratingColumn работает хорошо, но код Преобразовать не запускается - установка точки останова в нем показывает он никогда не называется.
Любые идеи, почему?
Я использую .Net 4.0
Спасибо!
Удалена ли точка останова в обработчике 'OnAutoGeneratingColumn'? – Sheridan
Да, точка останова показывает, что код, который я отправил из OnAutoGeneratingColumn, запускается, и что dgtc.ElementStyle сеттеры включают в себя сеттер с Property = Text – GilShalit
Вы пытались установить 'UsageBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;'? Может быть, это * работает *, но просто не * когда * ожидается? – Sheridan