Я создаю элемент управления, похожий на сетку, и использую элемент управления элементами для представления строки, а другой элемент управления для объединения этих строк. В ряд, элементы расположены горизонтально, поэтому я использую StackPanel с горизонтальной ориентацией, например:
<ItemsControl ItemsSource="{Binding CellRows}" Grid.Row="1" Grid.Column="1" Margin ="20">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Background="Cyan"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Content}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
По умолчанию я хочу, чтобы моя StackPanel принимала размер, который имеет его родитель, и это происходит. Но я также хочу, чтобы все дочерние элементы в itemscontrol (со стековой панелью в качестве itemspanel) занимали всю ширину своего родителя. Но этого не происходит.
Я читал, что это также стандартное поведение стековой панели.
Мои вопросы:
1) Есть ли способ заставить мои текстовые поля (дочерние элементы) занимать всю ширину моей стековой панели (родительской)? Я не знаю, сколько элементов будет содержать панель стека, поэтому я не могу задать ширину текстовых полей по умолчанию.
2) Есть ли еще какие-либо для представления 2D данных? (Я работаю с Silverlight 4 MVVM)
Заранее спасибо.