Ошибка при привязке свойства зависимости базового класса к свойству производного класса в модели представления - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть 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')

Как мне справиться с этим? Нужно ли делать конвертер, как подсказывает сообщение об ошибке? Или это должно быть обработано другим способом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...