Попытка получить доступ к StackPanel внутри ячейки DataGrid - PullRequest
1 голос
/ 29 марта 2019

Прямо сейчас я застрял при попытке получить доступ к StackPanel внутри DataGrid Cell.

Моя цель состоит в том, чтобы программно генерировать маленькие картинки (значки) внутри StackPanel на основе другого поля внутри DataGrid.

Это мой XAML для Column ...

<DataGridTemplateColumn Width="*" x:Name="generatedBandges">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                <!--<Image Source="..\..\Image\badge.png" />-->
            </StackPanel>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Я просто не знаю, как туда добраться, чтобы генерировать значки для каждого Row ...

1-е редактирование: я пытался обойти это путем реализацииповторное изображение и привязка ширины, но я не могу заставить его работать, и это решает проблему, только если у вас есть одна строка изображений (мне нужно больше строк :()

Код, который я пытался ...

                  <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                            <Rectangle Height="15" Width="{Binding Badge}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
                                <Rectangle.Fill>
                                    <ImageBrush ImageSource="..\..\Image\sim.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,15,15"/>
                                </Rectangle.Fill>
                            </Rectangle>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>

Есть ли способ связать панель стека? Чтобы я мог добавить к ней элементы управления или что-то подобное?

2-е редактирование: Итак, я попробовал это ... но опять-таки не могу заставить его работать- можно воспользоваться помощью ..

 <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>

                        <ItemsControl ItemsSource="{Binding Items}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal"/>
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>

                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <Image Source="..\..\Image\sim.png"/>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>

                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
...