I have a simple window :
What @JesseJames says is true but not enough.
You have to put
private ObservableCollection<Activity> Activities { get; set; }
as
public ObservableCollection<Activity> Activities { get; set; }
And the binding should be:
<ListView x:Name="lvItems" ItemsSource="{Binding Path=Activities}" />
Regards,
Set DataContext = this
in the Window constructor.
public WinActivityManager()
{
Activities = new ObservableCollection<Activity>();
DataContext = this;
InitializeComponent();
}
Then you will be able to bind Activities as you want: <ListView x:Name="lvItems" ItemsSource="{Binding=Activities}" />
That's because the data context of your view hasn't been set. You could either do this in the code behind:
this.DataContext = this;
Alternatively, you could set the Window's DataContext
to itself - DataContext="{Binding RelativeSource={RelativeSource Self}}"
You're much better off though investigating the MVVM design pattern, and using an MVVM framework.
You must set DataContext to this like others answered, but you can set DataContext
through xaml
also:
<Window x:Class="WinActivityManager"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<ListView x:Name="lvItems" ItemsSource="{Binding Path=Activities}" />
</Grid>
</Window>