Я пытаюсь создать макет, где как количество строк и количество столбцов динамичны, как показано ниже:Можно ли использовать существующую сетку при создании элемента 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
, но, к сожалению, не работает.
Единственный способ установить сетку как ItemsPanelTemplate
внутри ItemsControl
?
Есть ли другие подходы? Или мне пришлось бы рулон мой ItemsControl
?
Не могли бы вы указать ссылку на MSDN, которая говорит это? – IronMan84
@ IronMan84 проверить обновленный текст - я поместил ссылку за словом «MSDN». – Woodman
Привет, Вудман, это означает, что других подходов нет? – Darkzaelus