В настоящее время мы находимся в процессе переключения нашего продукта с WinForms на WPF. В настоящий момент мы используем некоторые сторонние элементы управления WinForm, необходимые для нашего приложения. Хотя мы планируем в конечном итоге заменить их версиями WPF, сейчас это невозможно. Мы попытались разместить их в окне wpf внутри элемента управления WindowsFormsHost, и, похоже, это работает нормально. Единственная проблема, с которой мы сталкиваемся, - это передать наши данные с виртуальной машины на эти элементы управления. Мы хотели бы избежать любых изменений кода и изменений в VM только для размещения этих элементов управления. В идеале мы предпочли бы, чтобы VM полностью не осознавала элементы управления, используемые для отображения его данных, поэтому, когда мы изменим версию WPF этих элементов управления, нам нужно только изменить представление. Вот почему мы ищем способ привязать свойство VM к размещенному элементу управления WinForm из XAML. Если это помогает, мы, безусловно, можем жить с тем фактом, что с помощью VM есть только один способ привязки к VM, и мы не против, если привязка работает только один раз, без последующих обновлений от VM, поскольку свойства VM мы обязательны, не меняются. Возможно, у кого-то есть идеи, как мы можем это сделать?Свойство управления привязкой winform в XAML
ответ
Не уверен, что, если есть лучший способ, но вот одна идея:
Wrap элемент управления WinForm/управления WindowsFormsHost в элемент управления обертку (наследуется от Control или использовать UserControl, независимо лучше для вас).
На этой обертке вы можете добавить свойства зависимостей, которые вы хотите связать с вашей виртуальной машиной.
Внутри кода обертки вы можете добавить шаблон, необходимый для распространения изменений взад и вперед между вашими зависимыми свойствами оболочки и вашими свойствами winform.
Это скрывает грязь под ковром и предоставляет красивый WPF-фасад, с которым вы можете привязываться, как обычно, без изменения вашей виртуальной машины.
Когда элемент управления отключен, удалите обертку из проекта и вы можете связать виртуальную машину напрямую с новым элементом управления заменой WPF.
- 1. Изменить свойство управления winform из другого класса
- 2. Рефакторинг XAML-код с привязкой
- 3. WinForm Элементы управления привязкой к списку <T> проблема
- 4. Silverlight Xaml Overriding IsEnabled Свойство управления
- 5. Элементы управления привязкой WPF
- 6. Управление привязкой WinForm к связанному объекту
- 7. как бороться с сложной привязкой объекта winform?
- 8. winform: проблема с привязкой к DropDownList
- 9. Проблема с привязкой в пользовательском элементе управления
- 10. пользовательского управления привязкой к коллекции в собственности
- 11. Задайте свойство в XAML функции
- 12. Элементы управления привязкой WPF
- 13. Размер управления привязкой WPF
- 14. Свойство, установленное в стиле, не может быть отменено с привязкой в xaml?
- 15. StringFormat в XAML с привязкой/функции/формат
- 16. Вставка форм Winform внутри XAML WPF
- 17. Что такое свойство IsTabStop для элемента управления в xaml?
- 18. , как получить доступ свойство пользовательского элемента управления в XAML WPF
- 19. Привязать свойство, находящееся за пределами элемента управления Items в XAML
- 20. Возможно ли создать прикрепленное свойство в закрытом классе управления XAML?
- 21. WPF Пользовательское свойство управления, установленное через XAML в собственном теге
- 22. WPF - Пользовательский интерфейс управления привязкой
- 23. Зависимость Свойство, присвоенное привязкой значения, не работает
- 24. проблема с привязкой Silverlight вложенные элементы управления
- 25. Свойство Attached Behavior не установлено привязкой в UWP
- 26. Автоматический размер элементов управления в winform
- 27. Проблемы с привязкой к настраиваемому элементу управления
- 28. Расположение кода управления Winform
- 29. Обновление управления Force Winform
- 30. Как вынести DataBound управления XAML в родную XAML рисунка
+1, хотя некоторые образцы кода сделают это лучшим ответом. –