2014-11-02 41 views
0

如何綁定一個datatemplate來重現observablecollection中的每個項目,以便它們全都顯示出來?或者我必須在運行時將它們作爲單獨的控件添加嗎?如何將數據模板綁定到observablecollection,以便它們都顯示出來?

所以我有一個DataTemplate:

<UserControl.Resources> 
    <DataTemplate x:Key="QueueItem"> 
     <StackPanel Orientation="Vertical"> 
      <Label Content="{Binding caseNumber}"></Label> 
      <!--TODO: put my other controls for this template here...--> 
     </StackPanel> 
    </DataTemplate> 
</UserControl.Resources> 

我在XAML這裏實現它:

<ContentControl 
       Content="{Binding TestItems}" 
       ContentTemplate="{StaticResource QueueItem}"> 
</ContentControl> 

而且在我的ViewModel有一些類我做的一個實例TestItems,和一個成員那是caseNumber,所以上面的代碼對我來說工作得很好......但是現在我希望有一個可觀察的同一類的集合,那麼是否有xaml語法可以綁定到集合實例來重現以上爲每個索引?

謝謝!

+0

'ContentControl'是用於顯示一個單一的項目,而' ItemsControl'用於顯示項目列表。 – Rachel 2014-11-03 04:18:59

回答

1

你可以使用一個ItemsControl並使用ItemsTemplate屬性模板:

<ContentControl> 
    <ItemsControl 
      ItemsSource="{Binding YourTestItemList}" 
      ItemTemplate="{StaticResource QueueItem}"/> 
</ContentControl> 
+0

謝謝!這不會給我任何錯誤,但我在屏幕上看不到任何結果。我想知道是否需要額外的東西來完成這項工作?我會看看我是否可以找到任何演示的在線itemscontrol和observablecollections – Chris 2014-11-03 03:49:18

+1

也許你有一個錯誤的地方在你的綁定?您可以嘗試增加綁定錯誤的日誌級別(請參閱[這裏](http://msdn.microsoft.com/zh-cn/library/dd409960.aspx)),那麼您是否會在調試輸出中獲得更多信息窗口? – pgenfer 2014-11-03 04:33:14

+0

非常感謝!你的回答是正確的,你的評論幫助我修復了我的錯誤!最後的問題是,我的財產是內部的而不是公共的,所以在我將它更改爲公開之後,您的代碼完美無缺。 – Chris 2014-11-03 14:57:14

相關問題