WPF ListBox bind ItemsSource with MVVM-light
c#, listbox, mvvm, mvvm-light, wpf
Solution
In my opinion you are binding your controls to wrong datacontect, check output window for erros. You might want to set datacontext of main window to your MainViewModel (in codebehind or similar). Also why do you create another instance for docs? It is useless.
public ObservableCollection<Files> Filescollection {get;set;}
public MainViewModel()
{
this.Filescollection = new ObservableCollection<Files>();
SelectFilesAction();
}
private void SelectFilesAction()
{
Filescollection.Add(new Files { Name = "index.html", Path = "C:\\Files"});
}
Problem
XAML ``` <Window x:Class="Html5Mapper.Mapper.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpt="http://schemas.xceed.com/wpf/xaml/toolkit" Title="HTML mapper" Height="300" Width="600" > <Window.DataContext> <Binding Path="Main" Source="{StaticResource Locator}"/> </Window.DataContext> <ListBox Name="lbFiles" ItemsSource="{Binding Filescollection, Mode=OneWay}" Width="240" Height="220"> <ListBox.ItemTemplate> <DataTemplate> <Grid Margin="0,2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="100" /> </Grid.ColumnDefinitions> <Image Source="HTML.png" Height="40" Width="32" /> <TextBlock Grid.Column="1" Text="{Binding Name}" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> ``` MainViewModel.cs ``` public ObservableCollection<Files> Filescollection { get; set; } public MainViewModel() { this.Filescollection = new ObservableCollection<Files>(); SelectFilesAction(); } private void SelectFilesAction() { this.Filescollection.Add(new Files { Name = "index.html", Path = "C:\\Files"}); //lbFiles.ItemsSource = docs; } ``` Q: What else do I need to get the docs object into the Listbox ?