Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • 11:11
    HrlecMatej commented #397
  • 02:45

    RLittlesII on version7

    housekeeping: Added v7 changes (compare)

  • 02:39

    RLittlesII on version7


  • Sep 28 04:45
    hungnd1475 commented #123
  • Sep 27 15:12
  • Sep 27 02:41
    glennawatson commented #404
  • Sep 27 02:03
    jeanplevesque commented #402
  • Sep 26 17:46
    wldevries commented #200
  • Sep 18 10:11
    RolandPheasant closed #407
  • Sep 18 10:11
    RolandPheasant commented #407
  • Sep 18 01:02
    RolandPheasant edited as member
  • Sep 17 15:53
    RolandPheasant added as member
  • Sep 17 15:53
    RolandPheasant removed as member
  • Sep 17 00:53

    glennawatson on glennawatson-update-release-script


  • Sep 17 00:52

    glennawatson on main

    housekeeping: Add the release b… (compare)

  • Sep 17 00:52
    glennawatson closed #408
  • Sep 17 00:52
    glennawatson opened #408
  • Sep 17 00:51

    glennawatson on glennawatson-update-release-script

    Add only release if merge is tr… (compare)

  • Sep 17 00:49

    glennawatson on glennawatson-update-release-script

    housekeeping: Add the release b… (compare)

[glennawatson, Reactive, Inc.] how so, each one of those generates a source change observable, while with the ienumerable version it causes a aggregated observable change etc
[gdurand, Reactive, Inc.] I think the problem is related to the creation of 1 autorefresh per domain that will listen to all the domains already present. In the end I get n domain observing n domains
[glennawatson, Reactive, Inc.] I agree that’s also a issue, but don’t discount the IEnumerable vs single add
[gdurand, Reactive, Inc.] as I said I tested with the enumerable, with only 1 addorupdate, and there is no change (at least the Autorefresh problem hides it very well)
[gdurand, Reactive, Inc.] I'm not sure the AutoRefresh is optimized in relation to the number of AddOrUpdate (at least it's not what I observe)
[glennawatson, Reactive, Inc.] I’m guessing Roland can confirm, it will just cause one regeneration of items vs n of the for loop
[glennawatson, Reactive, Inc.] that’s what I seen
[glennawatson, Reactive, Inc.] but thats more if you add the items after generating the AutoRefresh()
[gdurand, Reactive, Inc.] that's what I do: the Children observable is created in the constructor of a Domain, so it is indeed added to the main cache after the generation
[roland, Reactive, Inc.] Where does project data come from and whether does domain data come from? Are they sources as 2 distinct data sources? And is the code taking the 2 sources and creating a one to many relationship?
[gdurand, Reactive, Inc.] There is only one source: IEnumerable<Domain> ProjectService.GetDomains(). And the cache should be updated from the returned value, once normally.
[gdurand, Reactive, Inc.] I pushed more tests, where I compare AutoRefresh(propertyAccessor) and AutoRefreshOnObservable(one global observable that never emits) and, quite surprisingly, the latter is waaaay slower than the former, though AutoRefresh actually uses AutoRefreshOnObservable
[gdurand, Reactive, Inc.] and to answer your question more completely Project and the domains come from 2 sources
[roland, Reactive, Inc.] The reason for slowness is excessive amounts of change set notifications coupled with repeated auto refresh subscriptions (auto refresh are opt in for a reason). That was clear cut as soon as I saw the problem. What my questions are geared up to is to try and understand your data and your problem so I can suggest a simple solution - the always is with rx / dd / linq
[roland, Reactive, Inc.] ...any way I am working now and will sign back in later
[gdurand, Reactive, Inc.] OK, I made it work quite simply: I do not use AutoRefreshOnObservable but I pass my global Observable of Parent changes as a parameter to Filter. All I wanted to do was actually reapply the filter, but I thought AutoRefresh did just that
[gdurand, Reactive, Inc.] I had to use a Filter overload that didn't quite suit my needs though: to pass a reapplyFilter I had to use the Filter with an observable predicateChanged. I would have preferred using the static filter
[gdurand, Reactive, Inc.] Also I think I found a bug on the Filter overload with only the reapplyFilter parameter: it call DynamicFilter with a null predicateChanged, which causes it to throw a ArgumentNullException
[gdurand, Reactive, Inc.] I will file an issue on github

[RolandPheasant/DynamicData] Issue created by gdurand
Filter(reapplyFilter) calls the DynamicFilter constructor with a null predicateChanges, which causes it to throw an ArgumentNullException.

Also I don't understand the usage of this method: there is no filter specified.

[RolandPheasant/DynamicData] Issue created by gdurand
Currently you cannot refresh a cache filtered with a static predicate.
An overload Filter(Func<TObject, bool> filter, IObservable<Unit> reapplyFilter) could be useful.
[roland, Reactive, Inc.] @gdurand does 'ProjectService.GetDomains()' return all possible domains?
[RolandPheasant/DynamicData] New comment by onliner10 on pull request #126: Use LinkedLists in IndexCalculator, optimise algorithm
I managed to fix algorithm to handle refreshes, therefore fixing failing test
Renato Marinho
This message was deleted
Logan Laughlin
Hello everyone. I'm not sure what I might be doing wrong, but each time I try to add Dynamic Data to a Linqpad script, I get this error:
I've tried manually installing System.Reactive 3.1.1, but I get a similar error:
I've read that this is supposed to be solved in some versions of nuget/system.reactive/dynamicdata, sometimes with the instructions to change to "PackageReference" for .csproj files, but I'm using Linqpad, not .csproj. I'm more concerned that there any issues that explain workarounds for this, as DynamicData still has a dependency on System.Reactive 3.1.1
Jeremy Kolb
is there a way to transform a property from a IObservableCache to a IObservableList? I want to do something like: (
IObservableList<string> myList = this.SensorCache.Connect()
                .DistinctValues(s => s.Group) // Find distinct values of "Group" property
                .Filter(group => !string.IsNullOrEmpty(group)) // Filter and sort
               .ToObservableList() // doesn't exist, closest I can find is Bind
Jeremy Kolb
maybe the correct question is how to go from IObservable<IChangeSet<X, Y>> to IObservable<ChangeSet<Y>>
Jozef Hollý
@kjeremy .RemoveKey()
IObservable<IChangeSet<TObject>> RemoveKey<TObject, TKey>(this IObservable<IChangeSet<TObject, TKey>> source)
Jeremy Kolb
Thanks! Now I can remove a bunch of ReadOnlyObservableCollection
Jozef Hollý

Is there a method that works like IEnumerable's SingleOrDefault? I am looking for IObservable<IChangeSet<T>>.SingleOrDefault<T> that would return IObservable<T>.

I have a SourceList<item>, and I need a IObservable<bool> that says whether a defined item is present in the collection. With LINQ I'd do .Contains(), but a reactive equivalent seems to be missing. I could use .Filter(), but then .SingleOrDefault equivalent is still needed. Am I missing something?

Jozef Hollý
While I think this operator would be useful, I solved it when I realized (Left)Join can be used if it's a cache, not a list.
Roland Pheasant
@/all for those who do not already know, the forum has moved to here If you have problems getting access please DM your email address to me and I will send an invite.
vanessa jese
Jonas Jermann
hi, given a SourceList, how do I get an observable property of e.g. list.FirstOrDefault(x => x.SomeCondition())?
Or alternatively is there some observable I can subscribe to that always changes when anything of the SourceList changes?
Usman Waheed
LiveCharts.Wpf.Axis ax = new LiveCharts.Wpf.Axis()
Title = "Period Name",
ShowLabels = true,
FontWeight = System.Windows.FontWeights.Bold,
                Foreground = new SolidColorBrush(Colors.Black),
                Labels = LabelsX,
I am trying to print the List of years coming from database
but the problem is it always gives a difference of 2 year
2010 ---> 2012 on x axis
i don't know how can i set the labels
so it will not miss any year
@/all for those who do not already know, the forum has moved to here
José Manuel Nieto
Thanks for the info!
(I'm already there)
Artur Malendowicz
guys, how the hell can i force refilter on sourceCache? triggering reapply filter doesnt work...

Should SourceList.Connect() pass an initial empty IChangeSet if the source list is empty?
It appears not to do this.
In most cases this causes no problems but when used with CombineLatest it causes the CombineLatest to wait for an initial change.

The example below outputs nothing if the list is empty but outputs a value as expected if it contains items.

SourceList<> sourcelist = new SourceList<>();
IObservable<bool> anotherObs = ...;

// some code that conditionally adds items to sourceList

    .QueryWhenChanged(x => someConditionalFunc(x))
    .CombineLatest(anotherObs, (a, b) => a || b)
    .Subscribe(x => Console.WriteLine(x));

To get around this problem I have to add .StartWith() after the QueryWhenChanged call, but the code would be simpler if Connect() always output an initial changeset.

The logical Or method does not work as I would expect.
For example Or two caches: A,B with B,C would produce A,B,C, then removing B from set 1 should still produce a combine cache A,B,C as set 2 still contains B, but actually the combined cache produces A,C.
I assumed that the Or method would be analogous to a set operator.