#c# #.net #wpf #mvvm #vb6
#c# #.net #wpf #mvvm #vb6
Вопрос:
Я ищу стратегию для реализации нового приложения WPF 4.0 с шаблоном MVVM, который повторно использует различные пользовательские элементы управления VB6. Я бы хотел, чтобы элементы управления WPF и VB6 использовали одну и ту же модель представления.
Существуют ли какие-либо известные стратегии для этого?
Комментарии:
1. Вы знаете, что VB6 не поддерживается с 2008 года, верно?
2. @John: Я думаю, что VB6 менее важен для вопроса, чем COM.
3. @GregoryABeamer: Возможно, но нужно убедиться, что OP знает — удивительно, но не все знают, что это не поддерживается.:
4. @John: Что? Далее вы скажете мне, что Windows 3.1 не является поддерживаемой операционной системой. 😉
5. Я не могу позволить себе переписать все приложение за один цикл выпуска, и мне нужно растянуть работу на несколько лет.
Ответ №1:
Вы можете разместить элемент управления ActiveX в WPF, как показано в этом пошаговом руководстве. Это ваша первая проблема. Предполагая, что биты VB6 настроены как элемент управления ActiveX, вы выиграли большую часть игры.
Использование одной и той же модели представления (данных пользовательского интерфейса?) в элементе управления не должно быть серьезной задачей, в зависимости от того, как написан элемент управления. Вы должны иметь возможность направлять модель представления к элементу управления, что означает наличие некоторого открытого метода или свойства.
Итак, я вижу два потенциальных препятствия:
- Элемент управления не является ActiveX
- Управление не предоставляет очевидных средств для переноса модели представления из кода WPF в элемент управления для отображения
Однако, если вы не будете абсолютно вынуждены использовать элемент управления VB6, я бы рассмотрел возможность использования более современного элемента пользовательского интерфейса.