Arranging collection items in a grid

2019-01-24 13:27发布

问题:

I would like to arrange items of a collection in a grid with a specific number of columns and rows (say 4x6). Each item exposes the dependency properties (integer) X and Y and should be placed in the relevant cell of the grid. Note that the collection can change during runtime which should update the grid items.

I couldn't find any good solution. But maybe it is even possible without using the code-behind?

Don't mind conversion or something. This stuff changes anyway. The used collection class isn't important. (You can choose one.)

How can I solve this problem? Any appropriate suggestions would we welcome, thanks.

回答1:

<ItemsControl ItemsSource="{Binding YourItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Grid.Column" Value="{Binding X}"/>
            <Setter Property="Grid.Row" Value="{Binding Y}"/>
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>