У меня проблема с передачей объекта в конвертер в WPF.WPF: передача объекта datagridrow в конвертер
Моя DataGrid выглядит следующим образом:
<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>
Преобразователь:
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();
}
}
При запуске мой прог отмеченной линии бросает ошибку, что мой CustomTask т объект является нулевым. Что я делаю не так?
EDIT:
Как Вадим Мартынов предложил мне поменять нейтрализатор:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
CustomTask t = (CustomTask)value;
...
}
И это прекрасно работает сейчас Благодаря
Что произойдет, если вы берете вызов к преобразователю , т.е. заменить на: отображается ли имя клиента во всплывающей подсказке? –
Stew52
@ Stew52 нет в этом случае конвертер никогда не звонит –
он не будет делать, потому что вы его удалили. но показывает ли это, что вы ожидаете? т.е. есть ли контекст данных для подсказки, что вы ожидаете от нее? – Stew52