Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

I want to Count the online count of the sourcelist , the OnlineCount is always 0
how to make it , please help
here is my code :

public class MainViewModel : ViewModelBase
{
    private readonly SourceList<TeamMember> _sourceList = new SourceList<TeamMember>();
    [Reactive] public int OnlineCount { get; set; }
    [Reactive] public ReadOnlyObservableCollection<TeamMember> TeamMembers { get; private set; }
    public MainViewModel()
    {
        var pub = _sourceList.Connect().ObserveOn(RxApp.MainThreadScheduler).Publish().RefCount();
        pub.Bind(out var teamMembers).Subscribe();
        TeamMembers = teamMembers;

        pub.AutoRefreshOnObservable(x => x.WhenAnyValue(y => y.Online))
            .Filter(x => x.Online)
            .Count()
            .Subscribe(x => OnlineCount = x);

        Observable.Interval(TimeSpan.FromSeconds(1)).Do(_ =>
           {
               _sourceList.Edit(list =>
               {
                   foreach (var member in list)
                   {
                       member.Online = new Random().Next(0, 2) == 1;
                   }
               });
           }).Subscribe();

        MakeData();
    }

    private void MakeData()
    {
        AddMember("Alice", "Developer");
        AddMember("Bob", "Designer");
        AddMember("Charlie", "Manager");
        AddMember("Diana", "Tester");
        AddMember("Ethan", "DevOps");
        AddMember("Fiona", "Product Owner");
    }

    private void AddMember(string name, string role) => _sourceList.Add(new TeamMember { Name = name, Role = role, Online = false });
}
public class TeamMember : ReactiveObject
{
    [Reactive] public string Name { get; set; } = string.Empty;
    [Reactive] public string Role { get; set; } = string.Empty;
    [Reactive] public bool Online { get; set; }
}


You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
🙏
Q&A
Labels
None yet
1 participant
Morty Proxy This is a proxified and sanitized view of the page, visit original site.