Image 将图像列表绑定到StackPanel
我想将图像列表绑定到DataGrid.RowDetailsTemplate中的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
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();
}
}