在我开始使用的项目中Caliburn.Micro。
现在我想把一个大的拆分UserControl成几个小UserControls的,这样我就可以在里面使用它们了DataTemplates。EisenbergEffect 建议在这个答案中这样做
因为ViewModels我将分层数据建模为ObservableCollection<SubViewModel>.
现在我想我只需要Views为UserControls那些SubViewModels.
我的视图是主从视图。我想提供一个计算机列表,在详细信息视图中我想拥有这些计算机的 HardwareComponents。
<ListView x:Name="ComputerViewModels">
<ListView.ItemTemplate>
<DataTemplate>
<ContentControl x:Name="HardwareComponentViewModel" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我已经按照此处的建议包含了调试输出:调试日志记录
而且我没有得到任何关于我的 HardwareComponentViewModel 的输出,除了
Action Convention Not Applied: No actionable element for set_HardwareComponentViewModel
HardwareComponentViewModels 在创建 ComputerViewModels 时已经创建。
我已经ContentControl在应用程序的其他部分使用了 - 方式,并且它在那里工作得很好(将Contentusing IOC 注入到外部 ViewModel 中)。但它似乎不适合 DataTemplate 部分(不过这并不令人惊讶)。SubViewModels 派生自Screen, 作为外部 ViewModels。
如何将新的 UserControl 用作 DataTemplate?