2013-02-20 62 views
1

我試圖創造一個佈局,其中的行數和列數是動態的,如下面所示:創建ItemsControl時是否可以使用現有網格?

Image http://s7.postimage.org/cdhay2c23/test.png

我期待都在一個網格託管的控件這樣我就可以從上到下,從左到右工作。我想獲得工作的代碼如下所示:

<Grid base:GridHelpers.RowCount="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=dx:DXWindow}, Path=Groups.Count}" Name="EnclosingGrid"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="180" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <!--Labels--> 
    <ItemsControl ItemsSource="{Binding Rows}" ItemsPanel="{Binding ElementName=EnclosingGrid}"> 
     <ItemsControl.ItemContainerStyle> 
      <Style> 
       <Setter Property="Grid.Row" Value="{Binding RowIndex}" /> 
      </Style> 
     </ItemsControl.ItemContainerStyle> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Label Grid.Column="0" Content="{Binding Path=FieldName}" VerticalContentAlignment="Center" /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
    <!--Process fields--> 
    <ItemsControl ItemsSource="{Binding Cells}" ItemsPanel="{Binding ElementName=EnclosingGrid}"> 
     <ItemsControl.ItemContainerStyle> 
      <Style> 
       <Setter Property="Grid.Row" Value="{Binding ParentRow.RowIndex}" /> 
       <Setter Property="Grid.Column" Value="{Binding ColumnIndex}" /> 
      </Style> 
     </ItemsControl.ItemContainerStyle> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <TextBox /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Grid> 

我已經嘗試設置ItemsPanel屬性來封閉網格,但不幸的是不起作用。

是否真的在ItemsControl內設置網格爲ItemsPanelTemplate的唯一方法?

還有其他方法嗎?或者我會不得不推出我自己的ItemsControl

回答

0

ItemsPanel屬性類型是ItemsPanelTemplate,所以你不能將此屬性直接綁定到現有的一些控制。

您可以將此屬性視爲一種工廠類,它應該爲項目提供容器控制。 這就是MSDN字面上所說的這種類型:指定ItemsPresenter創建用於ItemsControl項目佈局的面板。

+0

請問您可以包含一個指向MSDN的鏈接嗎? – IronMan84 2013-02-20 15:09:50

+0

@ IronMan84檢查更新的文本 - 我已經把一個鏈接放在「MSDN」字之後。 – Woodman 2013-02-20 15:44:08

+0

嗨樵夫,這是否意味着沒有其他方法? – Darkzaelus 2013-02-20 15:54:51

相關問題