我无法将ViewModel列表作为项目绑定到制表符控件。
//ShellViewModel.cs
private BindableCollection<RecentUnitViewModel> RecentUnitModels { get; set; }
<!-- ShellView.xaml -->
<GroupBox FontSize="16" Margin="10" FontWeight="DemiBold" Grid.Row="3">
<GroupBox.Header>Last Seen</GroupBox.Header>
<TabControl ItemsSource="{Binding RecentUnitModels}" >
</TabControl>
</GroupBox>
意外结果:显示“RecentUnitViewModel”类型而不是View。
答案 0 :(得分:9)
如果你有一个按惯例绑定的Conductor,那么TabControl的Caliburn绑定最简单(将DataContext设置为Conductor实例并命名TabControl“Items”。)这里的问题是TabControl实例化所有选项卡共享的单个内容演示者,但您需要以某种方式告诉Caliburn.Micro在更改内容时查找ViewModel的视图。我发现这很好用:
<TabControl.ContentTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}"/>
</DataTemplate>
</TabControl.ContentTemplate>
我在这里假设你绑定的ViewModels是真正的ViewModels(不是UserControls),并且你有Caliburn.Micro为你绑定的单独的Views(UserControls)。
答案 1 :(得分:1)
你的财产需要公开......