WPF: Исключение InvalidOperationException при попытке очистить ListView

XAML-код выглядит так:

<ListView x:Name="eventsView" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" 
MouseDoubleClick="eventsView_MouseDoubleClick" >
...
<GridViewColumn Width="Auto" Header="Level" DisplayMemberBinding="{Binding Level }"/>

Как видно из кода, данные в список заносились не напрямую, а через привязку данных, поэтому когда я попытался очистить ListView с помощью кода:

eventsView.Items.Clear();

Получил исключение InvalidOperationException «Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead«.

Поэтому для того, чтобы очистить ListView в этом случае нужно было очищать список, к которому этот ListView был привязан:

eventList.Clear();

Привязка осуществлялась в коде следующим образом:

Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate {
 this.eventsView.SetValue(ListView.ItemsSourceProperty, eventList);
 }, null);

При этом возникает проблема обновления интерфейса. Для того, чтобы ListView узнал о том, что мы обновили список, нужно использовать не List<>, а ObservableCollection<EventRecord> eventList { get; set; }

А элементы списка добавлялись с помощью следующего кода:

Application.Current.Dispatcher.Invoke((Action)delegate
{
eventList.Add(eventdetail);
});