2011-09-03 43 views
1

這是我工作的代碼:使用綁定到一個列表<UserControl>我怎麼能不顯示控件,請

<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到列表框。它包含:

List<Container> 
(Below container properties) 
    - Objective: string 
    - Problems: List<UserControls> 

看這句話:<ItemsControl ItemsSource="{Binding Problems}" > 在代碼中,問題是用戶控件的列表。當我加載程序時,列表框顯示用戶控件的控件,它應該顯示矩形。

我在做什麼錯?

回答

4

看Visual Studio中的輸出窗口,你會看到:

System.Windows.Data Error: 26 : ItemTemplate and ItemTemplateSelector are ignored for items already of the ItemsControl's container type; Type='XXX'

不適的模板,因爲項目可以直接添加。


我的意思怎麼樣包裝你控制的是你創建一個類持有一個屬性的用戶控件,如:

Problems : List<ProblemContainer> 
public class ProblemContainer 
{ 
    public UserControl Problem { get; set; } 
} 
+0

但我不明白這一點,這是顯示列表框中的用戶控件.. – Darf

+1

@OscarFimbres:是的,因爲它*可以*,ItemTemplate被忽略。此外,它不是一個列表框,一個列表框會**不**顯示它們.. –

+0

對不起,我的基本知識,但我該如何解決它? – Darf