MintPlayer.ObservableCollection
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package MintPlayer.ObservableCollection --version 1.0.0
NuGet\Install-Package MintPlayer.ObservableCollection -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MintPlayer.ObservableCollection" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MintPlayer.ObservableCollection --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MintPlayer.ObservableCollection, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MintPlayer.ObservableCollection as a Cake Addin #addin nuget:?package=MintPlayer.ObservableCollection&version=1.0.0 // Install MintPlayer.ObservableCollection as a Cake Tool #tool nuget:?package=MintPlayer.ObservableCollection&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MintPlayer.ObservableCollection
Extended version of System.Collections.ObjectModel.ObservableCollection. This class allows you to:
- Use AddRange, invoking the CollectionChanged event only once
- Monitor properties of the items in the collection
NuGet package
https://www.nuget.org/packages/MintPlayer.ObservableCollection/
Installation
NuGet package manager
Open the NuGet package manager and install the MintPlayer.ObservableCollection package in the project
Package manager console
Install-Package MintPlayer.ObservableCollection
Usage
Example 1
var collection = new ObservableCollection<string>();
collection.CollectionChanged += (sender, e) =>
{
Console.WriteLine($"Collection changed:");
if (!e.NewItems.IsNullOrEmpty())
{
var newItemsArray = new string[e.NewItems.Count];
e.NewItems.CopyTo(newItemsArray, 0);
Console.WriteLine($"- items added: {string.Join(", ", newItemsArray)}");
}
if (!e.OldItems.IsNullOrEmpty())
{
var oldItemsArray = new string[e.OldItems.Count];
e.OldItems.CopyTo(oldItemsArray, 0);
Console.WriteLine($"- items removed: {string.Join(", ", oldItemsArray)}");
}
};
collection.Add("Michael");
//collection.Enabled = false;
collection.Add("Junior");
//collection.Enabled = true;
collection.Add("Jackson");
Example 2
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
private string firstname;
public string FirstName
{
get { return firstname; }
set
{
firstname = value;
OnPropertyChanged();
}
}
private string lastname;
public string LastName
{
get { return lastname; }
set
{
lastname = value;
OnPropertyChanged();
}
}
public string FullName => $"{firstname} {lastname}";
}
Program.cs
var collection = new ObservableCollection<Person>();
collection.CollectionChanged += (sender, e) =>
{
Console.WriteLine($"Collection changed:");
if (!e.NewItems.IsNullOrEmpty())
{
var newItemsArray = new Person[e.NewItems.Count];
e.NewItems.CopyTo(newItemsArray, 0);
Console.WriteLine($"- items added: {string.Join(", ", newItemsArray.Select(p => p.FullName))}");
}
if (!e.OldItems.IsNullOrEmpty())
{
var oldItemsArray = new Person[e.OldItems.Count];
e.OldItems.CopyTo(oldItemsArray, 0);
Console.WriteLine($"- items removed: {string.Join(", ", oldItemsArray.Select(p => p.FullName))}");
}
};
collection.ItemPropertyChanged += (sender, e) =>
{
Console.WriteLine($"Item property changed: {e.PropertyName}");
};
collection.AddRange(new[] {
new Person { FirstName = "John", LastName = "Doe" },
new Person { FirstName = "Jimmy", LastName = "Fallon" },
new Person { FirstName = "Michael", LastName = "Douglas" }
});
collection[1].LastName = "Knibble";
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 3.0
- System.ObjectModel (>= 4.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MintPlayer.ObservableCollection:
Package | Downloads |
---|---|
KarnaughMap
This package contains a .NET Core Windows Forms control that renders a Karnaugh-map which is fully interactive. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.0.0 | 32 | 11/13/2024 |
8.2.1 | 102 | 8/5/2024 |
8.2.0 | 122 | 2/28/2024 |
8.1.0 | 193 | 12/20/2023 |
8.0.0 | 259 | 11/14/2023 |
7.0.1 | 812 | 11/18/2022 |
7.0.0 | 342 | 11/17/2022 |
7.0.0-preview.1 | 105 | 10/31/2022 |
6.0.4 | 377 | 11/18/2022 |
6.0.3 | 409 | 10/31/2022 |
6.0.1 | 574 | 9/19/2022 |
6.0.0 | 504 | 9/19/2022 |
1.5.0 | 614 | 7/22/2021 |
1.4.0 | 364 | 6/28/2021 |
1.3.0 | 408 | 6/25/2021 |
1.2.2 | 655 | 11/7/2020 |
1.2.1 | 470 | 9/17/2020 |
1.2.0 | 629 | 7/7/2020 |
1.2.0-preview3 | 302 | 7/7/2020 |
1.2.0-preview2 | 292 | 7/7/2020 |
1.2.0-preview1 | 296 | 7/7/2020 |
1.1.1 | 453 | 7/7/2020 |
1.1.0 | 442 | 7/7/2020 |
1.0.7 | 410 | 7/7/2020 |
1.0.6 | 516 | 6/28/2020 |
1.0.5 | 533 | 6/27/2020 |
1.0.4 | 557 | 6/27/2020 |
1.0.3 | 448 | 6/8/2020 |
1.0.2 | 456 | 6/5/2020 |
1.0.1 | 441 | 6/5/2020 |
1.0.0 | 751 | 10/18/2019 |