如何获取数据模板以在列中显示数据

时间:2018-09-20 14:51:20

标签: wpf xaml

我在一个列表框中有一个数据模板,该模板动态创建6个标签。它在一行中显示这些标签的内容。如何获得数据模板以在2行的3列中列出数据?因此,如果我添加了9个动态标签,则会将其排列为3列3行。

    <Grid Grid.Row="1">
        <ListBox ItemsSource="{Binding AvailableLayoutsOC, Mode=TwoWay}"
                 Margin="0">
             <ListBox.ItemsPanel>
                  <ItemsPanelTemplate>
                      <WrapPanel Orientation="Horizontal"/>
                   </ItemsPanelTemplate>
              </ListBox.ItemsPanel>
              <ListBox.ItemTemplate>
                  <DataTemplate>
                      <StackPanel Orientation="Horizontal">
                          <Label Content="{Binding AvailableLayoutLabel}"/> 
                      </StackPanel>
                  </DataTemplate>
              </ListBox.ItemTemplate>
        </ListBox>      
   </Grid>

1 个答案:

答案 0 :(得分:1)

尝试一下,但是不要忘了为选择绑定SelectedLayoutLabel

<Grid>
    <ListBox ItemsSource="{Binding AvailableLayoutsOC}"
             Margin="0" HorizontalAlignment="Left" VerticalAlignment="Top" SelectedValue="{Binding SelectedLayoutLabel}">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="3" />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Label Content="{Binding AvailableLayoutLabel}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>