mirror of
https://github.com/SirLecram/HospitalServerManager
synced 2024-12-11 15:01:29 +01:00
71 lines
2.7 KiB
C#
71 lines
2.7 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Collections.ObjectModel;
|
|||
|
using System.Collections.Specialized;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace HospitalServerManager.Model
|
|||
|
{
|
|||
|
class RangeObservableCollection<T> : ObservableCollection<T>
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Adds the elements of the specified collection to the end of the ObservableCollection(Of T).
|
|||
|
/// </summary>
|
|||
|
public void AddRange(IEnumerable<T> collection)
|
|||
|
{
|
|||
|
if (collection == null) throw new ArgumentNullException("collection");
|
|||
|
|
|||
|
foreach (var i in collection) Items.Add(i);
|
|||
|
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Removes the first occurence of each item in the specified collection from ObservableCollection(Of T).
|
|||
|
/// </summary>
|
|||
|
public void RemoveRange(IEnumerable<T> collection)
|
|||
|
{
|
|||
|
if (collection == null) throw new ArgumentNullException("collection");
|
|||
|
|
|||
|
foreach (var i in collection) Items.Remove(i);
|
|||
|
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Clears the current collection and replaces it with the specified item.
|
|||
|
/// </summary>
|
|||
|
public void Replace(T item)
|
|||
|
{
|
|||
|
ReplaceRange(new T[] { item });
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Clears the current collection and replaces it with the specified collection.
|
|||
|
/// </summary>
|
|||
|
public void ReplaceRange(IEnumerable<T> collection)
|
|||
|
{
|
|||
|
if (collection == null) throw new ArgumentNullException("collection");
|
|||
|
|
|||
|
Items.Clear();
|
|||
|
foreach (var i in collection) Items.Add(i);
|
|||
|
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class.
|
|||
|
/// </summary>
|
|||
|
public RangeObservableCollection()
|
|||
|
: base() { }
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Initializes a new instance of the System.Collections.ObjectModel.ObservableCollection(Of T) class that contains elements copied from the specified collection.
|
|||
|
/// </summary>
|
|||
|
/// <param name="collection">collection: The collection from which the elements are copied.</param>
|
|||
|
/// <exception cref="System.ArgumentNullException">The collection parameter cannot be null.</exception>
|
|||
|
public RangeObservableCollection(IEnumerable<T> collection)
|
|||
|
: base(collection) { }
|
|||
|
}
|
|||
|
}
|
|||
|
|