Image 将图像列表绑定到StackPanel

Image 将图像列表绑定到StackPanel,image,list,bind,stackpanel,Image,List,Bind,Stackpanel,我想将图像列表绑定到DataGrid.RowDetailsTemplate中的stackpanel。 我的班级结构如下: public class A { private List<MyImage> _images = new List<MyImage>(); public List<MyImage> Images { get; set; } public string Name { get; set; } public vo

我想将图像列表绑定到DataGrid.RowDetailsTemplate中的stackpanel。 我的班级结构如下:

public class A
{
    private List<MyImage> _images = new List<MyImage>();
    public List<MyImage> Images { get; set; }
    public string Name { get; set; }

    public void AddImage(byte[] src) { ... }
}

public class MyImage
{
    public BitmapImage Image { get; set; }
    public byte[] RawData { get; set; }
}
公共A类
{
私有列表_images=新列表();
公共列表图像{get;set;}
公共字符串名称{get;set;}
公共无效添加映像(字节[]src){…}
}
公共类MyImage
{
公共位图图像{get;set;}
公共字节[]RawData{get;set;}
}
在我的主要课程中,我有一个列表:

public List<A> AList { get; set; }
dataGrid1.ItemsSource = AList;
dataGrid1.DataContext = AList;
公共列表列表列表{get;set;}
dataGrid1.ItemsSource=AList;
dataGrid1.DataContext=AList;
我只想在DataGridTextColumn中显示元素的Name属性,并在RowDetails中显示存储在images属性中的所有图像

我的xaml是:

<DataGrid name="dataGrid1">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Binding="{Path=Name}"/>
    </DataGrid.Columns>
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <StackPanel DataContext="{Binding Path=Images}">
                <Image Source="{Binding Path=RawData}"/>
            </StackPanel>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>


我所看到的只是一张图片,虽然还有一些图片存储在图片中。有什么想法吗?

好的,所以这个问题的解决方案是使用ContentPresenter与转换器相结合

现在,我的XAML如下所示:


以及相应的转换器类别:

公共类ImageCollectionConverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
列表图像=值为列表;
如果(图像!=null)
{
StackPanel stack=新的StackPanel();
堆栈方向=方向水平;
foreach(图像中的设计图像img)
{
图像=新图像();
image.Source=img.image;
stack.Children.Add(图像);
}
返回栈;
}
返回null;
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}

好的,所以这个问题的解决方案是将ContentPresenter与转换器结合使用

现在,我的XAML如下所示:


以及相应的转换器类别:

公共类ImageCollectionConverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、CultureInfo区域性)
{
列表图像=值为列表;
如果(图像!=null)
{
StackPanel stack=新的StackPanel();
堆栈方向=方向水平;
foreach(图像中的设计图像img)
{
图像=新图像();
image.Source=img.image;
stack.Children.Add(图像);
}
返回栈;
}
返回null;
}
公共对象转换回(对象值、类型targetType、对象参数、CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}