使用绑定到List <usercontrol>如何不显示控件</usercontrol>

时间:2011-09-03 18:25:39

标签: c# wpf xaml data-binding

这是我正在使用的代码:

<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的列表。当我加载程序时,列表框显示来自用户控件的控件,它应该显示矩形。

我做错了什么?

1 个答案:

答案 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; }
}