C# WPF中图像采集的动态加载与显示

C# WPF中图像采集的动态加载与显示,c#,.net,wpf,telerik,C#,.net,Wpf,Telerik,我使用的是Telerik WPF控件,但如果有任何可能有用的建议,我将不胜感激。 我有一个GridView(RadGridView和RadGridView.RowDetailsTemplate实际上,这并不重要)。此外,我还有一个图像集合(实际上是一个ICollection,其中该集合的项与图像相关的URI)。如果我的集合中有固定数量的图像,那么一切都可以正常工作,因为我可以在我的视图(XAML)中创建固定数量的Image控件,并为集合中的每个图像创建绑定到我的每个Image控件。 我想创建一

我使用的是Telerik WPF控件,但如果有任何可能有用的建议,我将不胜感激。 我有一个GridViewRadGridViewRadGridView.RowDetailsTemplate实际上,这并不重要)。此外,我还有一个图像集合(实际上是一个ICollection,其中该集合的项与图像相关的URI)。如果我的集合中有固定数量的图像,那么一切都可以正常工作,因为我可以在我的视图(XAML)中创建固定数量的Image控件,并为集合中的每个图像创建绑定到我的每个Image控件。

我想创建一个迷你画廊。问题是如何在运行时生成非固定数量的图像控件以显示在我的GridView.RowDetails中(或者告诉我是否有其他方法显示图像列表)。我想知道是否有几种方法可以做到这一点(即通过XAML中的绑定和代码)


提前谢谢。

我将使用
CellTemplate
来完成此操作

基本上,您需要一个
ImageSource
/
Uri
的集合,它将是
DataGrid
/
RadGridView
项源。这个集合应该实现
INotifyCollectionChanged
INotifyPropertyChanged
,例如
ObservableCollection
。因此您需要编写代码在模型背后或视图模型中,您可以动态构建此集合,并在Xaml中绑定
图像的
源属性

示例代码 注意这里的示例代码是用于MS
DataGrid
,但是Telerik
RadGridView
具有类似的界面,因此您可以轻松地修改代码

在Xaml中,可以有如下内容:

<Grid>
    <Grid.Resources>
        <DataTemplate x:Key="DataTemplate1">
            <Image Source="{Binding}"/>
        </DataTemplate>
    </Grid.Resources>
    <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTemplateColumn CellTemplate="{StaticResource DataTemplate1}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

C#代码如下:

var items = new ObservableCollection<Uri>();
this.DataContext = items;
for (int i = 1; i < 4; i++)
{
    items.Add(new Uri("youimage.jpg"));
}
var items=新的ObservableCollection();
this.DataContext=项目;
对于(int i=1;i<4;i++)
{
添加(新Uri(“youimage.jpg”);
}

请参见此处:。非常感谢您提供的解决方案!此外,如果其他人发现我关于StackOverflow的问题,他可能也有兴趣阅读以下内容。祝您度过愉快的一天。