I've got a problem with passing object to converter in WPF.
My DataGrid looks like:
<DataGrid x:Name="customTasksDataGrid" Margin="10,10,10,38" Grid.Column="1" IsReadOnly="True" AutoGenerateColumns="False">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock Text="{Binding Path=., Converter={StaticResource converter}, NotifyOnTargetUpdated=True}"/>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Klient" Binding="{Binding Client.Names}"/>
...
</DataGrid.Columns>
</DataGrid>
Converter:
public class DateToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
CustomTask t = (CustomTask)value;
Console.WriteLine(t.ToString()); // HERE
...
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
When running my prog marked line throws error, that my CustomTask t object is null. What am I doing wrong?
EDIT:
As Vadim Martynov suggested I change my converter to:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
CustomTask t = (CustomTask)value;
...
}
And it works perfectly now! Thanks