Свойство класса VB.Net, задающее объект?

В настоящее время я пишу HMI для автоматизированной машины в VB.Net 2010. У меня есть пользовательский класс, который поворачивает зеленый или красный границы в зависимости от значения входа на удаленном модуле ввода/вывода.

Подключение к удаленному модулю ввода/вывода осуществляется через COM-объект, предоставленный производителем. У меня три удаленных соединения, давайте их называть g1, g2 и g3. Они имеют тип Manufacturer.ConnectionObject.

Я хотел бы указать, используя свойство, которое я могу установить в XAML, в экземплярах MyCustomBorder используется g1, g2 или g3. К сожалению, настройка свойства g и ввода g1 в поле свойства приводит к сообщению "Значение свойства недопустимо. Подробности: свойство" g "не поддерживает преобразование String в Value".

Поэтому вместо этого я оставляю для ручной установки (во время запуска программы), каждого отдельного экземпляра MyCustomBorder:

CustomBorder1.g = g1
CustomBorder2.g = g3
CustomBorder73.g = g1

... и так далее.

Мне сказали, что мне нужно реализовать конвертер между String и пользовательским классом, Manufacturer.ConnectionObject, но я понятия не имею, как это сделать, тем более, что Manufacturer.ConnectionObject является частью COM-объекта закрытого типа.

Помогите, кто-нибудь? Благодарю!

2 ответа

Попытка напрямую связать COM-объект в WPF, скорее всего, вызовет у вас много головных болей. В качестве первого шага я бы определил дружественный WPF класс, который обертывает экземпляры Manufacturer.ConnectionObject и связывает это вместо WPF

Class MyConnectionObject 
 Public Manufacturer.ConnectionObject _connection

 Public Property Value As String 
 Get
 ' Return _connection as a String
 End Get
 End Property
End Class

licensed under cc by-sa 3.0 with attribution.