Прямо сейчас я застрял при попытке получить доступ к 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>