CommunityToolkit / CommunityToolkit/Windows

Better support for NotifyCollectionChanged event

Aperta
#298 0 commenti 4 reazioni 0 assegnatari Vedi su GitHub
enhancement feature request :mailbox_with_mail: good first issue help wanted
Lingua principale
C#
Stelle
1.1k
Fork
166
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Describe the bug

We have 6 explicit places we reference the NotifyCollectionChanged event in the Toolkit: https://github.com/search?q=repo%3ACommunityToolkit%2FWindows%20NotifyCollectionChanged&type=code

- [ ] MetadataControl - Updates everything all the time regardless
- [ ] WrapLayout/StaggeredLayout - Does something with Indexes? Probably need update?
- [x] IsNullOrEmptyStateTrigger - Just uses it as an indicator to check collection size, so should be good
- [ ] InterspersedObservableCollection (TokenizingTextBox) - Looks like it handles multiple changes already, but could probably use tests for this scenario? (Actually, looks like we didn't bring [their original test file](https://github.com/CommunityToolkit/WindowsCommunityToolkit/blob/main/UnitTests/UnitTests.UWP/UI/Controls/Test_TokenizingTextBox_InterspersedCollection.cs) forward from the old repo ☹)
- [ ] AdvancedCollectionView - if more than one resets the collection, so doesn't care, but un-optimal

If/When https://github.com/dotnet/runtime/issues/18087 gets implemented, it'd be good for the Toolkit to just be ready and work. Many of our other collection controls are just based on ListViewBase and don't do anything too special, so I think we should be good other from the above?

### Steps to reproduce

```text
N/A
```

### Expected behavior

Should work with multiple items in a collection changed event.

### Screenshots

_No response_

### Code Platform

- [ ] UWP
- [X] WinAppSDK / WinUI 3
- [ ] Web Assembly (WASM)
- [ ] Android
- [ ] iOS
- [ ] MacOS
- [ ] Linux / GTK

### Windows Build Number

- [ ] Windows 10 1809 (Build 17763)
- [ ] Windows 10 1903 (Build 18362)
- [ ] Windows 10 1909 (Build 18363)
- [ ] Windows 10 2004 (Build 19041)
- [ ] Windows 10 20H2 (Build 19042)
- [ ] Windows 10 21H1 (Build 19043)
- [ ] Windows 10 21H2 (Build 19044)
- [ ] Windows 10 22H2 (Build 19045)
- [ ] Windows 11 21H2 (Build 22000)
- [ ] Other (specify)

### Other Windows Build number

_No response_

### App minimum and target SDK version

- [ ] Windows 10, version 1809 (Build 17763)
- [ ] Windows 10, version 1903 (Build 18362)
- [ ] Windows 10, version 1909 (Build 18363)
- [ ] Windows 10, version 2004 (Build 19041)
- [ ] Windows 10, version 2104 (Build 20348)
- [ ] Windows 11, version 22H2 (Build 22000)
- [ ] Other (specify)

### Other SDK version

_No response_

### Visual Studio Version

_No response_

### Visual Studio Build Number

_No response_

### Device form factor

_No response_

### Additional context

Related:
- https://github.com/dotnet/designs/pull/320/
- https://github.com/dotnet/runtime/issues/18087
- https://github.com/dotnet/runtime/issues/76375

### Help us help you

No, I'm unable to contribute a solution.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia eseguendo un audit dei sei riferimenti di Toolkit a NotifyCollectionChanged, in particolare MetadataControl, WrapLayout, StaggeredLayout, InterspersedObservableCollection in TokenizingTextBox e AdvancedCollectionView. Confronta la loro gestione con il file di test originale di InterspersedCollection collegato nell’issue e aggiungi la copertura per le modifiche di più elementi; il lavoro è completato quando i controlli interessati si comportano correttamente e i test pertinenti hanno esito positivo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
frontend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.