Как избежать InvalidActiveXStateException в MVVM - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю MVVM C# приложение, в котором есть элемент ActiveX. Доступ к элементу ActiveX в конструкторе ModelView приводит к InvalidActiveXStateException, поскольку элемент ActiveX не инициализируется в этот момент времени.

Если я вызываю activeX.SetX = 42 с помощью кнопки, она работает, как и ожидалось.

XAML

...
<ContentControl Content="{Binding MicroscopeWindowsFormsHost}" />
...

ViewModel

public class ViewModel 
{
   private Child activeX;
   public WindowsFormsHost MicroscopeWindowsFormsHost
   {
      get { return new WindowsFormsHost() { Child = activeX }; }
    }

   public ViewModel() 
   {
      // This call leads to InvalidActiveXStateException because activeX is not initialized
      activeX.SetX = 42;
   }

Есть ли шанс проверить, инициализирован ли элемент ActiveX, или подписаться на событие, которое срабатывает, когда элемент ActiveX готовы?

...