2009-09-08 47 views
12

在我的ViewModel中我有一個項目列表,我希望我的視圖中的網格綁定到的項目(這些項目將是網格子項)。該列表是這些項目的視圖模型列表。你如何將網格的孩子綁定到列表?

如何將一個網格綁定到列表(我可以在代碼中訪問.children但不是xaml)? 另外,如何爲列表中的視圖模型指定數據模板(另一個xaml文件),以便它們在網格中正確呈現。

感謝

回答

22

使用的ItemsControlItemsPanel設置爲一個網格:

<ItemsControl ItemsSource="{Binding TheList}"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <Grid/> 
    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 

ItemsControlItemContainerStyle,您可能希望將Grid.RowGrid.Column附加屬性綁定到的某些屬性物品:

<ItemsControl.ItemContainerStyle> 
    <Style TargetType="{x:Type FrameworkElement}"> 
     <Setter Property="Grid.Row" Value="{Binding RowIndex}"/> 
     <Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/> 
    </Style> 
    </ItemsControl.ItemContainerStyle> 
+1

謝謝。我也想通了,我的問題的第二部分,如果其他人遇到這種 2009-09-09 14:44:13

+0

如果您知道需要多少個行和列,那麼這可以起到一定的作用,但是如果您想要最大行數/列數?有沒有辦法自動生成行/列定義? – 2012-08-25 11:09:48