diff --git a/dev/Repeater/ItemsRepeater.cpp b/dev/Repeater/ItemsRepeater.cpp index 8ae2676b74..2eed8e0d3e 100644 --- a/dev/Repeater/ItemsRepeater.cpp +++ b/dev/Repeater/ItemsRepeater.cpp @@ -540,13 +540,13 @@ void ItemsRepeater::OnDataSourcePropertyChanged(const winrt::ItemsSourceView& ol throw winrt::hresult_error(E_FAIL, L"Cannot set ItemsSourceView during layout."); } - m_itemsSourceView.set(newValue); - - if (oldValue) + if (m_itemsSourceViewChanged) { m_itemsSourceViewChanged.revoke(); } + m_itemsSourceView.set(newValue); + if (newValue) { m_itemsSourceViewChanged = newValue.CollectionChanged(winrt::auto_revoke, { this, &ItemsRepeater::OnItemsSourceViewChanged });