Правильный способ не реализовывать ConvertBack на IMultiValueConverter - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть объект, который реализует IMultiValueConverter. Он используется для привязки видимости столбца на основе определенной перестановки определенного значения bool и определенного значения enum, которые являются частью связанных данных. Сам метод ConvertBack, очевидно, не имеет смысла.

На обычном IValueConverter я мог бы вернуть Binding.DoNothing , но это не object[], поэтому не будет компилироваться.

В настоящее время я выбрасываю исключение, но это не кажется идеальным. Есть ли лучший способ?

1 Ответ

0 голосов
/ 27 апреля 2018

«Правильный» способ реализовать ConvertBack для IValueConverter или IMultiValueConverter - это выбросить NotSupportedException (вместо NotImplementedException).

Возвращать Binding.DoNothing не имеет смысла, так как метод никогда не должен вызываться. Но если он когда-либо будет вызван неожиданно, вы по праву получите исключение, которое сообщит вам, что пошло не так.

public object[] ConvertBack(
    object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
    throw new NotSupportedException();
}
...