【发布时间】:2014-02-05 16:34:59
【问题描述】:
我正在尝试在我的 WPF/Caliburn Micro 应用程序中显示页面。页面应该以矩形的方式呈现给用户。我的想法是为页面使用我的基本视图模型的集合(列)的集合(行):
public BindableCollection<BindableCollection<BaseViewModel>> Children { get; set; }
并在关联的视图中执行类似的操作:
<ItemsControl x:Name="Children">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding /}">
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这是错误的 - 我不知道要放入内部 ItemsControl 的内容。
感谢您的任何想法!
解决方案
我仍然不确定这是否是完美的解决方案,但它可以工作并且对我来说似乎并不太老套:
<ItemsControl x:Name="Children">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
【问题讨论】:
标签: wpf caliburn.micro