C# WPF中图像采集的动态加载与显示
我使用的是Telerik WPF控件,但如果有任何可能有用的建议,我将不胜感激。 我有一个GridView(RadGridView和RadGridView.RowDetailsTemplate实际上,这并不重要)。此外,我还有一个图像集合(实际上是一个ICollection,其中该集合的项与图像相关的URI)。如果我的集合中有固定数量的图像,那么一切都可以正常工作,因为我可以在我的视图(XAML)中创建固定数量的Image控件,并为集合中的每个图像创建绑定到我的每个Image控件。C# WPF中图像采集的动态加载与显示,c#,.net,wpf,telerik,C#,.net,Wpf,Telerik,我使用的是Telerik WPF控件,但如果有任何可能有用的建议,我将不胜感激。 我有一个GridView(RadGridView和RadGridView.RowDetailsTemplate实际上,这并不重要)。此外,我还有一个图像集合(实际上是一个ICollection,其中该集合的项与图像相关的URI)。如果我的集合中有固定数量的图像,那么一切都可以正常工作,因为我可以在我的视图(XAML)中创建固定数量的Image控件,并为集合中的每个图像创建绑定到我的每个Image控件。 我想创建一
我想创建一个迷你画廊。问题是如何在运行时生成非固定数量的图像控件以显示在我的GridView.RowDetails中(或者告诉我是否有其他方法显示图像列表)。我想知道是否有几种方法可以做到这一点(即通过XAML中的绑定和代码)
提前谢谢。我将使用
CellTemplate
来完成此操作
基本上,您需要一个ImageSource
/Uri
的集合,它将是DataGrid
/RadGridView
的项源。这个集合应该实现INotifyCollectionChanged
和INotifyPropertyChanged
,例如ObservableCollection
。因此您需要编写代码在模型背后或视图模型中,您可以动态构建此集合,并在Xaml中绑定图像的源属性
示例代码
注意这里的示例代码是用于MSDataGrid
,但是TelerikRadGridView
具有类似的界面,因此您可以轻松地修改代码
在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的问题,他可能也有兴趣阅读以下内容。祝您度过愉快的一天。