невозможно связать мою модель с текстом формы: DomainUpDown - PullRequest
0 голосов
/ 11 апреля 2020

В течение некоторого дня я отчаянно искал способ связать свойство (в данном случае строку) моей модели со свойством Text для DomainUpDown, содержащегося в. Но каждый раз, когда я пытаюсь, я получаю сообщение: объект типа 'system. windows .data.binding' не может быть преобразован в тип 'system.string'

, вот код xaml:

    <Window.Resources>
 <local: Timer x: Key = "Timer" />
</Window.Resources>
<Grid>
 <WindowsFormsHost>
 <formsomainUpDown x: Name = "ModeDomainUpDown" Text = "{Binding Source = {StaticResource Timer}, Path = Mode, Mode = TwoWay}" />
</WindowsFormsHost>

Я указываю, что моя модель здесь - это класс Timer, свойство которого для связывания - Mode (a String) Mode, инициализируется как «IN» в конструкторе по умолчанию

Timer - это не просто POCO, но это можно наблюдать через интерфейс INotifyPropertyChanged, более того, я немного опишу его здесь

заранее благодарю за помощь

1 Ответ

0 голосов
/ 13 апреля 2020

Если formsomainUpDown является элементом управления winforms, а его свойство 'Text' не является DependencyProperty (что вполне вероятно), то вы не можете связать его значение ни с чем.

Для использования привязки в WPF требуется свойство ваших элементов управления быть DependencyProperty.

Вы должны обернуть элемент управления и его хост в другой UserControl и создать для него DependencyProperty, а в коде прослушивать изменения свойства Text и фиксировать изменения в новом DependencyProperty.

...