【发布时间】:2014-12-24 08:13:26
【问题描述】:
我想在 Canvas 上呈现一堆用户控件,但每个用户控件都应该呈现为自定义内容控件的内容。
自定义内容控件称为 Window 并提供边框、一些按钮等,并允许用户在画布周围拖动窗口。我已经像这样定义了画布及其子项:
<ItemsControl Grid.Column="2" Grid.Row="1" ItemsSource="{Binding Views}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<controls:Window Title="Test" Width="300" Height="300" Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Top" Value="50"/>
<Setter Property="Canvas.Left" Value="50"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
但是当每个项目被渲染时,它会在没有周围的 Window 内容控件的情况下显示。事实上,它甚至没有命中 Window 构造函数。这告诉我它忽略了 DataTemplate 并直接将用户控件添加到画布,但我不知道为什么。
有什么建议吗?
【问题讨论】:
标签: c# wpf canvas itemscontrol