Coder Social home page Coder Social logo

mvvm-utils's Introduction

MVVM Utils

Build statusRelease statusNuGet

MVVM Utils is intended to save developers' time by providing a bunch of handy classes that replace some of the repetitive code that we may have to write in a MVVM application.

ObservableRangeCollection

It's an ObservableCollection that can add, remove and replace a group of items but in a better optimized way, by working with ranges, so instead of notifying the UI every time an item is added or removed, It notifies the UI only once, after the intended operation is done.

API:

  • AddRange : If the collection is empty, It raises OnCollectionChanged with NotifyCollectionChangedAction.Reset, otherwise, It raises OnCollectionChanged with NotifyCollectionChangedAction.Add along with the added items and the starting index.
  • RemoveRange : It raises OnCollectionChanged with NotifyCollectionChangedAction.Reset.
  • RemoveRangeWithRemoveAction : It checks if the removed range is consecutive, if so, the startingIndex is determined, otherwise, the starting index is set to -1, then it raises OnCollectionChanged with NotifyCollectionChangedAction.Remove along with the starting index and the removed items.
  • ReplaceRange
  • Replace
  • GetRange: returns the requested range based on a given starting index and the count of the elements of this range.

N.B.: this ObservableCollection is more of a remake, inspired by jamesmontemagno : ), I tried to rewrite it my way, and hopefully did some improvements XD.

Wanna Join Me?

You can report bugs, ask for more features, suggestions, optimizations or even send some pull requests, you'll know what to do : ).

mvvm-utils's People

Contributors

moltu avatar yahyatinani avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.