[Windows] RefreshView Command executes multiple times when IsRefreshing is set to True
- Dominant language
- C#
- Stars
- 23.3k
- Forks
- 2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 290
Description
### Description
On the Windows platform, when a CollectionView is placed inside a RefreshView, and a button is placed in the FooterTemplate, setting IsLoading = true (which triggers IsRefreshing) causes the RefreshCommand to execute multiple times instead of once.
This leads to multiple refresh executions and eventually results in an application crash.
This issue is not reproduced on Android or iOS.
### Steps to Reproduce
1.Create a RefreshView containing a CollectionView.
2.Add a Button inside the FooterTemplate of the CollectionView.
3.In the button click handler, set IsLoading = true.
4.Observe that the RefreshCommand executes multiple times on Windows.
or
Run the below sample
[CollectionViewScrollingRefreshBug-main 2.zip](https://github.com/user-attachments/files/22021142/CollectionViewScrollingRefreshBug-main.2.zip)
### Link to public reproduction project repository
_No response_
### Version with bug
9.0.100 SR10
### Is this a regression from previous behavior?
No, this is something new
### Last version that worked well
Unknown/Other
### Affected platforms
Windows
### Affected platform versions
_No response_
### Did you find any workaround?
_No response_
### Relevant log output
```shell
```
Contributor guide
Research direction
Start by running the provided CollectionViewScrollingRefreshBug sample and reproducing the issue with a RefreshView, CollectionView footer Button, and IsLoading set to true on Windows. Trace the RefreshCommand execution path and compare it with Android or iOS behavior; done means the command executes once and the sample no longer crashes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100