我试图将动态创建的数据模板项(绑定到对象)显示为表格格式。我的堆栈面板和包装面板都不会格式化我最初使用按钮时的效果。我被引导相信我的面板控件实际上并没有格式化它们内部的项目。
以下是我的代码的一些相关示例:
主窗口后面的代码c#
int numTapeSlots = 16;
public ObservableCollection<Tape> topTapes;
public MainWindow()
{
InitializeComponent();
topTapes = new ObservableCollection<Tape>();
topTapeSlots.ItemsSource = topTapes;
//Create Buttons Top Tray
for (int i = 1; i <= (numTapeSlots / 2); i++)
{
topTapes.Add(new Tape(i));
}
}
XAML
<Window.Resources>
<DataTemplate x:Key="TapeSlot">
<Border MouseUp="Border_MouseUp"
BorderBrush="Black"
BorderThickness="5">
<Grid>
<TextBlock x:Name="slotLocation"
Text="{Binding Path=tapeLocation}"
Height="25"
Width="30" />
</Grid>
</Border>
</DataTemplate>
</Window.Resources>
<WrapPanel x:Name="wpTopTray"
Grid.Column="1"
Margin="20,20,20,20"
VerticalAlignment="Top">
<ItemsControl Name="topTapeSlots"
ItemTemplate="{StaticResource TapeSlot}" />
</WrapPanel>
注意:WrapPanel可以正常使用按钮
现在发生的是,对象垂直显示在一条直线上。它几乎忽略了wrapPanel控件属性。
答案 0 :(得分:1)
你应该做的是使用ItemsPanel:
<ItemsControl Name="topTapeSlots" ItemTemplate="{StaticResource TapeSlot}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>