Ich bin neu in WPF und ich möchte eine App, die Bilder in einer ListBox zeigt. Ich habe eine Klasse namens _Images, die Bilder aus einem lokalen Ordner erstellt, erstellt eine Liste.WPF ListBox ItemsSource Bindungen findet nicht Pfad referenzierte
namespace wpfAppSlides.Imagens
{
class _Images
{
public List<Image> imgList = new List<Image>();
public void CarregaImagens()
{
string dir = @"C:\Users\devUser\Img";
foreach (string file in Directory.GetFiles(dir))
{
Image image = new Image();
BitmapImage source = new BitmapImage();
source.BeginInit();
source.UriSource = new Uri(file, UriKind.Relative);
source.EndInit();
image.Source = source;
imgList.Add(image);
}
}
}
}
Dann, in meinem XAML, referenzierte ich meine Namespaces.
xmlns:is="clr-namespace:wpfAppSlides._Images"
xmlns:col="clr-namespace:wpfAppSlides"
Und in einen DataContext.
<Window.DataContext>
<is:_Images></is:_Images>
</Window.DataContext>
Aber wenn ich meine ListBox will füttern mit den Einzelteilen auf imgList, mit Itemssource (in Eigenschaften, nicht-Code), er findet keinen Pfad, den ich imgList beziehen kann.
ListBox XAML:
<ListBox Height="110"
HorizontalAlignment="Left"
Margin="14,50,0,0"
Name="listBox1"
VerticalAlignment="Top"
Width="477" ItemsSource="{Binding}" />
Mainwindow-Code:
public partial class MainWindow : Window
{
_Imagens imgs;
public MainWindow()
{
InitializeComponent();
imgs = (_Images)this.DataContext;
imgs.CarregaImagens();
}
}
Ich versuchte ObservableCollection zu verwenden, aber es nützt nichts.
Hilfe?):
Nun, habe ich diese paar Änderungen und war zwecklos. Ich erklärte _Images (jetzt Bilder) als öffentlich und CarregaImagens() wird aufgerufen und ausgeführt, aber wenn ich versuche, die Daten zu binden, nur imgList zu verwenden : / – limabi