ViewModelViewHost是否在WPF的设计时工作?(ReactiveUI)

Jac*_*eja 8 wpf reactiveui

我无法ViewModelViewHost在Visual Studio的设计时间工作.这是设计还是我设置错了?

在我看来,我有:

  Locator.CurrentMutable.InitializeSplat();
  Locator.CurrentMutable.InitializeReactiveUI();
  Locator.CurrentMutable.Register(() => new SessionView(), typeof(IViewFor<SessionViewModel>));
Run Code Online (Sandbox Code Playgroud)

在我看来的XAML我有:

<d:DesignProperties.DataContext>
    <local:MainWindowViewModel>
        <local:MainWindowViewModel.ChildViewModel>
            <local:SessionViewModel/>
        </local:MainWindowViewModel.ChildViewModel>
    </local:MainWindowViewModel>
</d:DesignProperties.DataContext>

<reactiveUi:ViewModelViewHost ViewModel="{Binding ChildViewModel}"/>
Run Code Online (Sandbox Code Playgroud)

SessionView是一个IViewFor<SessionViewModel>.

有评论这里ViewModelViewHost表明在设计模式,它会试图创建一个视图之前返回构造函数.但是,InUnitTestRunner如果InDesignMode为此目的存在单独的属性,则应该返回true 似乎很奇怪.

  // NB: InUnitTestRunner also returns true in Design Mode
  if (ModeDetector.InUnitTestRunner()) {
     ViewContractObservable = Observable.Never<string>();
     return;
  }
Run Code Online (Sandbox Code Playgroud)

Gle*_*son 0

回复有点晚了,我们深表歉意。

答案是这是故意的。

如果允许 ReactiveUI 的代码在构造函数中初始化,我们的一些东西将会破坏 XAML 设计器。这就是为什么我们不运行这些值。