WPF Полудинамическая сетка - PullRequest
0 голосов
/ 23 октября 2019

У меня есть двумерная матрица светодиодов, которую я хочу включить / выключить. Для этого я хочу использовать сетку, и в каждой ячейке должна быть кнопка переключения для переключения.

Количество светодиодов может варьироваться, но известно при запуске из файла конфигурации (без изменения размера сетки во время выполнения).

Я видел несколько решений для полностью динамических сеток, но они кажутся невероятно сложными для моих нужд.

Есть ли способ создать сетку с шаблоном?

Iтакже пытался использовать DataGrid, но это также ограничено 1D массивами.

Обычно (для размещения элементов в одном направлении) я использую что-то вроде

<StackPanel>
    <ItemsControl ItemsSource="{Binding ArrayOfElementsToBindTo}" ItemTemplate="{StaticResource ViewTemplate}" />
</StackPanel>

Есть ли что-то похожее для2D сетка?

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете сделать это, используя UniformGrid. Вам нужно будет указать количество столбцов (или строк), и UniformGrid будет обрабатывать строки (или столбцы) из числа элементов.

<ItemsControl ItemsSource="{Binding ArrayOfElementsToBindTo}" ItemTemplate="...">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="2" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

Я думаю, что вы можете связать Columnsк чему-то (например, к ArrayOfElementsToBindTo через подходящий конвертер), если вам нужно рассчитать его на основе количества элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...