Witam, nie wiedziałem jak zbytnio streścić temat, ale mam nadzieję że poniższy kod wyjaśni mój problem.
Chcę użyć konwertera by zsumować dwie wartości atrybutów BeginTime w animacjach,dany jest inny konwerter którego używam:
public class Duration2TimeSpanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return ((Duration)value).TimeSpan;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
I ten konwerter działa bez zarzutu, natomiast gdy rozbuduję mój kod by pobierał dwie różne wartości:
public class DurationSumConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return ((Duration)values[0]).TimeSpan;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Celowo pominąłem sumowanie by zobrazować problem.
Stosuję powyższy konwerter za pomocą znacznika <MultiBinding> tak jak to zawsze robiłem.
Jeśli podbinduję tylko jedną wartość, taką samą jak dla pierwszego konwertera, po wczytaniu aplikacji czeka mnie System.InvalidCastException bez żadnych szczegółów.
Nie mam już pojęcia co może być nie tak.