Как создать приложение WPF с пользовательскими элементами управления MVVM и VB6

#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, вы выиграли большую часть игры.

Использование одной и той же модели представления (данных пользовательского интерфейса?) в элементе управления не должно быть серьезной задачей, в зависимости от того, как написан элемент управления. Вы должны иметь возможность направлять модель представления к элементу управления, что означает наличие некоторого открытого метода или свойства.

Итак, я вижу два потенциальных препятствия:

  1. Элемент управления не является ActiveX
  2. Управление не предоставляет очевидных средств для переноса модели представления из кода WPF в элемент управления для отображения

Однако, если вы не будете абсолютно вынуждены использовать элемент управления VB6, я бы рассмотрел возможность использования более современного элемента пользовательского интерфейса.