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
?
請問您可以包含一個指向MSDN的鏈接嗎? – IronMan84 2013-02-20 15:09:50
@ IronMan84檢查更新的文本 - 我已經把一個鏈接放在「MSDN」字之後。 – Woodman 2013-02-20 15:44:08
嗨樵夫,這是否意味着沒有其他方法? – Darkzaelus 2013-02-20 15:54:51