У меня есть UserControl, содержащий свойство зависимости типа базового класса с именем SignalBase
. Я объявляю свойство зависимости следующим образом:
public static readonly DependencyProperty TargetSignalProperty =
DependencyProperty.Register(
nameof(TargetSignal),
typeof(SignalBase),
typeof(SignalBrowserComboBox),
new PropertyMetadata(null));
public SignalBase TargetSignal
{
get { return (SignalBase)GetValue(TargetSignalProperty); }
set { SetValue(TargetSignalProperty, value); }
}
UserControl используется в одном из моих представлений, где я связываю свойство зависимости TargetSignal
со свойством модели представления типа класса Signal<T>
, производного от SignalBase
:
<usercontrols:SignalBrowserComboBox Height="25" Width="500"
TargetSignal="{Binding Path=LedDimmerSignal, Mode=TwoWay}" />
Насколько я вижу в приложении, привязка работает в обоих направлениях. Но я все еще получаю сообщение об ошибке в выводе отладки:
Ошибка System.Windows.Data: 1: невозможно создать конвертер по умолчанию для
выполнять «двусторонние» преобразования между типами
'Signals.Signal`1 [System.Int32]' и 'Signals.SignalBase'. Рассматривать
используя свойство Converter Binding.
BindingExpression: Path = LedDimmerSignal;
DataItem = 'ConfigureUserControlVM' (HashCode = 45513298); целевой элемент
is 'SignalBrowserComboBox' (Name = ''); целевое свойство
'TargetSignal' (тип 'SignalBase')
Как мне справиться с этим? Нужно ли делать конвертер, как подсказывает сообщение об ошибке? Или это должно быть обработано другим способом?