这是我正在使用的代码:
<TextBlock TextWrapping="Wrap" Text="{Binding Objective}" Grid.Column="0" VerticalAlignment="Center" FontWeight="Bold" />
<ItemsControl ItemsSource="{Binding Problems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Stroke="Black" Height="20" Width="20" Margin="1,0" />
</DataTemplate>
</ItemsControl.ItemTemplate>
将ItemsSource设置为listBox时。它包含:
List<Container>
(Below container properties)
- Objective: string
- Problems: List<UserControls>
请看这一行:<ItemsControl ItemsSource="{Binding Problems}" >
在代码中,Problems是UserControls的列表。当我加载程序时,列表框显示来自用户控件的控件,它应该显示矩形。
我做错了什么?
答案 0 :(得分:4)
查看Visual Studio的Output-window,您将看到:
System.Windows.Data错误:26:对于ItemsControl容器类型的项目,将忽略ItemTemplate和ItemTemplateSelector;类型= 'XXX'
它不适用模板,因为可以直接添加项目。
我对包装控件的意思是你创建了一个包含UserControl属性的类,例如:
Problems : List<ProblemContainer>
public class ProblemContainer
{
public UserControl Problem { get; set; }
}