Hi i'm trying to select images from a folder and then display those images in a listview. I tried to modify a sample code,when i run the sample the images are not getting displayed,i have posted the code here,can anybody tell me what i am doing wrong?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyImages = new ObservableCollection<MyImageClass>();
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
ofd.Filter = "Image Files (*.jpg, *.bmp,*.png,*.gif)|*.jpg;*.bmp;*.png;*.gif|All Files|*.*";
if (ofd.ShowDialog() == true)
{
string[] filePath = ofd.FileNames;
int i=filePath.Length;
string[] safeFilePath = ofd.SafeFileNames;
foreach (string imgPath in filePath)
{
foreach (string filename in safeFilePath)
{
MyImages.Add(new MyImageClass(filename, GetImageFromResourceString(imgPath)));
}
}
}
}
public ObservableCollection<MyImageClass> MyImages { get; set; }
private BitmapImage GetImageFromResourceString(string imageName)
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(imageName);
image.EndInit();
return image;
}
}
public class MyImageClass
{
public MyImageClass(string title, ImageSource image)
{
this.Title = title;
this.Image = image;
}
public string Title { get; set; }
public ImageSource Image { get; set; }
}
Here is the xaml
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="MyImagesItemTemplate">
<Grid Width="100" Height="100">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="{Binding Path=Image}" />
<Label Grid.Row="1" Content="{Binding Path=Title}" />
</Grid>
</DataTemplate>
</Window.Resources>
<Grid >
<ListBox ItemsSource="{Binding Path=MyImages, ElementName=window1}" ItemTemplate="{StaticResource MyImagesItemTemplate}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" />
</Grid>
</Window>