[Feature]: Bi-directional support for `BindingList<T>` adaptor
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Start by reading the Bind operator and the existing BindingList<T> adaptor; the issue does not name files or tests. First clarify which proposed flowback API to use and how it should prevent recursive events. Done means additions and removals through the bound list flow back to the source while source updates still reach the list.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the functionality desired 🐞
Per official docs BindingList<T>, which SourceCache can adapt to, supports bi-directional addition/removal/etc. DynamicData bindings to BindingList do not actually support that. This is problematic because many of third parrty controls, like DevExpress, assume that it's possible to add/remove the items from the BindingList they're bound to, and as a result this doesn't work well because the binding adaptor actually doesn't support such operations.
The steps the functionality will provide
I have a few different ideas on how this could be implemented.
- Possibly some sort of an overload for
Bindoperator. Because we no longer have the original SourceCache to operate on, and/or maybe we have a read-only cache, it may be beneficial to redirect the additions/removals to another cache. The backwards additions/removals would be handled automatically.
cache.Connect()
.Filter(someFilter)
.Bind(bindingList, flowbackTargetCache: cache)
.Subscribe();
- Manual flowback subscription configuration. Not currently sure what the API should be, but maybe a similar way, jsut instead of simply specifiying cache you specify an Rx observable stream that links the binding list back to the cache as a side effect and is used to prevent recursive event triggering by the adaptor (jsut thoughts aloud for now, not actually sure if it'll work this way).
Considerations
Using SourceCache directly - adds an unnecessary dependency on DynamicData to the control libraries, kinda adds to vendor lock-in.
- Vorherrschende Sprache
- C#
- Sterne
- 1.9k
- Forks
- 194
- Ø Merge
- 12 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus reactivemarbles/DynamicData
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
reactivemarbles/DynamicData#1229 ·
Maintainer antworten meist innerhalb von 1 Tag
-
infrastructure
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
reactivemarbles/DynamicData#1089 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: ChangeAwareList merges an insert one slot before a pending AddRange, corrupting list order downstreamEvtl. vergeben @dwcullop hat das vor 9 Tagen übernommen. Offenbug
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 63/100
reactivemarbles/DynamicData#1225 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Feature]: Make Avg, StdDev, Maximum and Minimum refresh-aware, consistent with SumEvtl. vergeben @dwcullop hat das vor 14 Tagen übernommen. Offenbreaking change enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
reactivemarbles/DynamicData#1214 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
reactivemarbles/DynamicData#1196 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in reactivemarbles/DynamicData
Ähnliche Issues
-
Feature needs response
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Adyen/adyen-dotnet-api-library#1907 ·
Maintainer antworten meist innerhalb von 5 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
immichFrame/ImmichFrame#735 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
dimitar-radenkov/Pointframe#318 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
DotHarness/dotcraft#546 ·
Maintainer antworten meist innerhalb von 1 Tag
-
a-corriger bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
christian-raj/S-Aloha#303 · 1 Kommentar ·