Расположение элементов коллекции в сетке

Я хотел бы расположить элементы коллекции в сетке с определенным количеством столбцов и строк (скажем, 4x6). Каждый элемент предоставляет свойства зависимости (целое число) X и Y и должен быть помещен в соответствующую ячейку сетки. Обратите внимание, что коллекция может измениться во время выполнения, что должно обновить элементы сетки.

Я не мог найти хорошего решения. Но может быть, это даже возможно без использования кода позади?

Не против обращения или чего-то еще. Это все равно меняется. Используемый класс коллекции не важен. (Вы можете выбрать один.)

Как я могу решить эту проблему? Мы будем рады любым соответствующим предложениям, спасибо.

Ответы на вопрос(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>
 user45879527 сент. 2010 г., 15:25
Работает нормально, спасибо. @ Роберт: Спасибо за объяснение. Я даже не знал, что Сетки генерируют контейнеры ...
 Goblin26 сент. 2010 г., 19:19
Хорошее решение, хотя вам нужно поместить туда Grid.RowDefinitions и Grid.ColumnDefinitions с максимальным значением X и Y в качестве RowDefinition и ColumnDefinition, соответственно .... в противном случае они просто будут перекрывать друг друга.
 Robert Rossney26 сент. 2010 г., 21:05
Стоит отметить, что вы должны использоватьItemContainerStyle сделать это. Вы не можете просто установитьGrid.Row а такжеGrid.Column вItemTemplate потому что любой элемент генерируетсяItemTemplate завернут в контейнер, которыйItemsControl генерирует, иGrid.Row а такжеGrid.Column должны быть установлены на этом контейнере для того, чтобыGrid чтобы увидеть их.

Ваш ответ на вопрос