【发布时间】:2019-03-08 09:40:28
【问题描述】:
我无法让ViewModelViewHost 在设计时在 Visual Studio 中工作。这是设计使然还是我设置有误?
在我看来,我有:
Locator.CurrentMutable.InitializeSplat();
Locator.CurrentMutable.InitializeReactiveUI();
Locator.CurrentMutable.Register(() => new SessionView(), typeof(IViewFor<SessionViewModel>));
在我认为的 XAML 中,我有:
<d:DesignProperties.DataContext>
<local:MainWindowViewModel>
<local:MainWindowViewModel.ChildViewModel>
<local:SessionViewModel/>
</local:MainWindowViewModel.ChildViewModel>
</local:MainWindowViewModel>
</d:DesignProperties.DataContext>
<reactiveUi:ViewModelViewHost ViewModel="{Binding ChildViewModel}"/>
SessionView 是一个IViewFor<SessionViewModel>。
ViewModelViewHost ctor 中有一条注释here 表明在设计模式下它将在尝试创建视图之前返回。但如果有一个单独的 InDesignMode 属性用于此目的,InUnitTestRunner 应该返回 true 似乎很奇怪。
// NB: InUnitTestRunner also returns true in Design Mode
if (ModeDetector.InUnitTestRunner()) {
ViewContractObservable = Observable.Never<string>();
return;
}
【问题讨论】:
标签: wpf reactiveui