Compare commits
9 Commits
@@ -5,13 +5,13 @@ on:
|
||||
branches:
|
||||
- "dev"
|
||||
paths:
|
||||
- "SimpleToolkit.MVVM**"
|
||||
- "MSEssentials.UI.Common.MVVM**"
|
||||
pull_request:
|
||||
branches:
|
||||
- "dev"
|
||||
- "main"
|
||||
paths:
|
||||
- "SimpleToolkit.MVVM**"
|
||||
- "MSEssentials.UI.Common.MVVM**"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -24,8 +24,6 @@ jobs:
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
- name: Add package source
|
||||
run: dotnet nuget add source --name gitea --username SimpleToolkit --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Build
|
||||
|
||||
@@ -8,7 +8,7 @@ on:
|
||||
branches:
|
||||
- "main"
|
||||
paths:
|
||||
- "SimpleToolkit.MVVM**"
|
||||
- "MSEssentials.UI.Common.MVVM**"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -21,8 +21,6 @@ jobs:
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
- name: Add package source
|
||||
run: dotnet nuget add source --name gitea --username SimpleToolkit --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Build
|
||||
@@ -62,15 +60,13 @@ jobs:
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
- name: Add package source
|
||||
run: dotnet nuget add source --name gitea --username SimpleToolkit --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
- name: Create NuGet package
|
||||
run: dotnet pack -c Release -p:Version=${{needs.version.outputs.version}} -p:PackageVersion=${{needs.version.outputs.version}} --output ./
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: nuget
|
||||
path: ./SimpleToolkit.MVVM.${{needs.version.outputs.version}}.nupkg
|
||||
path: ./MSEssentials.UI.Common.MVVM.${{needs.version.outputs.version}}.nupkg
|
||||
outputs:
|
||||
version: ${{needs.version.outputs.version}}
|
||||
publish:
|
||||
@@ -87,14 +83,12 @@ jobs:
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
- name: Add package source
|
||||
run: dotnet nuget add source --name gitea --username SimpleToolkit --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
- name: Publish
|
||||
run: dotnet nuget push ./SimpleToolkit.MVVM.${{needs.pack.outputs.version}}.nupkg --source gitea --api-key ${{ secrets.PACKAGES_WRITE_TOKEN }} --skip-duplicate
|
||||
run: dotnet nuget push ./MSEssentials.UI.Common.MVVM.${{needs.pack.outputs.version}}.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_KEY }}
|
||||
- name: Create Release
|
||||
uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
tag_name: ${{needs.pack.outputs.version}}
|
||||
name: ${{needs.pack.outputs.version}}
|
||||
files: |-
|
||||
SimpleToolkit.MVVM.${{needs.pack.outputs.version}}.nupkg
|
||||
MSEssentials.UI.Common.MVVM.${{needs.pack.outputs.version}}.nupkg
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 SimpleToolkit
|
||||
Copyright (c) 2026 Mateusz Skoczek
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleToolkit.MVVM", "SimpleToolkit.MVVM\SimpleToolkit.MVVM.csproj", "{7B017D3C-E116-20B5-21F7-692316023149}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSEssentials.UI.Common.MVVM", "MSEssentials.UI.Common.MVVM\MSEssentials.UI.Common.MVVM.csproj", "{7B017D3C-E116-20B5-21F7-692316023149}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -3,13 +3,13 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Title>SimpleToolkit.MVVM</Title>
|
||||
<Title>MSEssentials.UI.Common.MVVM</Title>
|
||||
<Authors>Mateusz Skoczek</Authors>
|
||||
<Copyright>Mateusz Skoczek</Copyright>
|
||||
<PackageProjectUrl>https://repos.mateuszskoczek.com/SimpleToolkit/</PackageProjectUrl>
|
||||
<PackageLicenseUrl>https://repos.mateuszskoczek.com/SimpleToolkit/SimpleToolkit.MVVM/src/branch/main/LICENSE</PackageLicenseUrl>
|
||||
<PackageProjectUrl>https://repos.mateuszskoczek.com/MSEssentials/</PackageProjectUrl>
|
||||
<PackageLicenseUrl>https://repos.mateuszskoczek.com/MSEssentials/MSEssentials.UI.Common.MVVM/src/branch/main/LICENSE</PackageLicenseUrl>
|
||||
<PackageIcon>icon.png</PackageIcon>
|
||||
<RepositoryUrl>https://repos.mateuszskoczek.com/SimpleToolkit/SimpleToolkit.MVVM</RepositoryUrl>
|
||||
<RepositoryUrl>https://repos.mateuszskoczek.com/MSEssentials/MSEssentials.UI.Common.MVVM</RepositoryUrl>
|
||||
<Description>Set of helpers, class extensions, UI controls used in my other C# projects - MVVM architecture models and helper classes</Description>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
</PropertyGroup>
|
||||
8
MSEssentials.UI.Common.MVVM/NavigationViewItem.cs
Normal file
8
MSEssentials.UI.Common.MVVM/NavigationViewItem.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace MSEssentials.UI.Common.MVVM;
|
||||
|
||||
public class NavigationViewItem
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string IconSource { get; set; }
|
||||
public Type ViewModel { get; set; }
|
||||
}
|
||||
@@ -1,37 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SimpleToolkit.MVVM
|
||||
namespace MSEssentials.UI.Common.MVVM
|
||||
{
|
||||
public class ObservableDictionary<TKey, TValue> : ObservableCollection<ObservableKeyValuePair<TKey, TValue>>, IDictionary<TKey, TValue>, IEnumerable<ObservableKeyValuePair<TKey, TValue>>
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public ICollection<TKey> Keys => Items.Select(p => p.Key).ToList();
|
||||
public ICollection<TValue> Values => Items.Select(p => p.Value).ToList();
|
||||
public bool IsReadOnly => false;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region INDEXERS
|
||||
|
||||
|
||||
public TValue this[TKey key]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!TryGetValue(key, out TValue result))
|
||||
{
|
||||
throw new ArgumentException("Key not found");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
get => !TryGetValue(key, out TValue result) ? throw new ArgumentException("Key not found") : result;
|
||||
set
|
||||
{
|
||||
if (ContainsKey(key))
|
||||
@@ -45,16 +26,11 @@ namespace SimpleToolkit.MVVM
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region CONSTRUCTORS
|
||||
|
||||
public ObservableDictionary() : base()
|
||||
|
||||
public ObservableDictionary()
|
||||
{ }
|
||||
|
||||
public ObservableDictionary(IDictionary<TKey, TValue> dictionary) : base()
|
||||
public ObservableDictionary(IDictionary<TKey, TValue> dictionary)
|
||||
{
|
||||
foreach (KeyValuePair<TKey, TValue> pair in dictionary)
|
||||
{
|
||||
@@ -62,12 +38,8 @@ namespace SimpleToolkit.MVVM
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PUBLIC METHODS
|
||||
|
||||
|
||||
public void Add(KeyValuePair<TKey, TValue> item) => Add(item.Key, item.Value);
|
||||
public void Add(TKey key, TValue value)
|
||||
{
|
||||
if (ContainsKey(key))
|
||||
@@ -77,8 +49,6 @@ namespace SimpleToolkit.MVVM
|
||||
Add(new ObservableKeyValuePair<TKey, TValue>(key, value));
|
||||
}
|
||||
|
||||
public void Add(KeyValuePair<TKey, TValue> item) => Add(item.Key, item.Value);
|
||||
|
||||
public bool Contains(KeyValuePair<TKey, TValue> item)
|
||||
{
|
||||
ObservableKeyValuePair<TKey, TValue> pair = GetKeyValuePairByTheKey(item.Key);
|
||||
@@ -96,20 +66,8 @@ namespace SimpleToolkit.MVVM
|
||||
return !Equals(default(ObservableKeyValuePair<TKey, TValue>), pair);
|
||||
}
|
||||
|
||||
public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
|
||||
{
|
||||
public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) =>
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool Remove(TKey key)
|
||||
{
|
||||
List<ObservableKeyValuePair<TKey, TValue>> remove = ((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).Where(pair => Equals(key, pair.Key)).ToList();
|
||||
foreach (ObservableKeyValuePair<TKey, TValue> pair in remove)
|
||||
{
|
||||
Remove(pair);
|
||||
}
|
||||
return remove.Count > 0;
|
||||
}
|
||||
|
||||
public bool Remove(KeyValuePair<TKey, TValue> item)
|
||||
{
|
||||
@@ -124,6 +82,16 @@ namespace SimpleToolkit.MVVM
|
||||
}
|
||||
return Remove(pair);
|
||||
}
|
||||
|
||||
public bool Remove(TKey key)
|
||||
{
|
||||
List<ObservableKeyValuePair<TKey, TValue>> remove = ((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).Where(pair => Equals(key, pair.Key)).ToList();
|
||||
foreach (ObservableKeyValuePair<TKey, TValue> pair in remove)
|
||||
{
|
||||
Remove(pair);
|
||||
}
|
||||
return remove.Count > 0;
|
||||
}
|
||||
|
||||
public bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
|
||||
{
|
||||
@@ -137,16 +105,11 @@ namespace SimpleToolkit.MVVM
|
||||
return true;
|
||||
}
|
||||
|
||||
IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator() => ((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).Select(i => new KeyValuePair<TKey, TValue>(i.Key, i.Value)).GetEnumerator();
|
||||
IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator() =>
|
||||
((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).Select(i => new KeyValuePair<TKey, TValue>(i.Key, i.Value)).GetEnumerator();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PRIVATE METHODS
|
||||
|
||||
private ObservableKeyValuePair<TKey, TValue> GetKeyValuePairByTheKey(TKey key) => ((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).FirstOrDefault(i => i.Key.Equals(key));
|
||||
|
||||
#endregion
|
||||
|
||||
private ObservableKeyValuePair<TKey, TValue> GetKeyValuePairByTheKey(TKey key) =>
|
||||
((ObservableCollection<ObservableKeyValuePair<TKey, TValue>>)this).FirstOrDefault(i => i.Key.Equals(key));
|
||||
}
|
||||
}
|
||||
@@ -5,21 +5,14 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SimpleToolkit.MVVM
|
||||
namespace MSEssentials.UI.Common.MVVM
|
||||
{
|
||||
public class ObservableKeyValuePair<TKey, TValue> : INotifyPropertyChanged
|
||||
{
|
||||
#region FIELDS
|
||||
|
||||
private TKey _key;
|
||||
private TValue _value;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PROPERTIES
|
||||
|
||||
|
||||
public TKey Key
|
||||
{
|
||||
get => _key;
|
||||
@@ -38,12 +31,7 @@ namespace SimpleToolkit.MVVM
|
||||
NotifyPropertyChanged(nameof(Value));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region CONSTRUCTORS
|
||||
|
||||
|
||||
public ObservableKeyValuePair() : this(default, default)
|
||||
{ }
|
||||
@@ -54,22 +42,10 @@ namespace SimpleToolkit.MVVM
|
||||
_value = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region PRIVATE METHODS
|
||||
|
||||
|
||||
private void NotifyPropertyChanged(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region EVENTS
|
||||
|
||||
|
||||
public event PropertyChangedEventHandler? PropertyChanged;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
51
MSEssentials.UI.Common.MVVM/README.md
Normal file
51
MSEssentials.UI.Common.MVVM/README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# MSEssentials.UI.Common.MVVM
|
||||
|
||||
### Set of helpers, class extensions, UI controls used in my other C# projects
|
||||
|
||||
MSEssentials is package of useful classes, helpers, extensions and UI controls, I use in my C# projects. MVVM subpackage contains class, method and property MVVM.
|
||||
|
||||
---
|
||||
|
||||
## NuGet registry status
|
||||
|
||||
| Subpackage | Status |
|
||||
|-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **MSEssentials.UI.Common.MVVM** | [](https://www.nuget.org/packages/MSEssentials.UI.Common.MVVM/) |
|
||||
| MSEssentials.Extensions | [](https://www.nuget.org/packages/MSEssentials.Extensions/) |
|
||||
| MSEssentials.AspNetCore.Attributes | [](https://www.nuget.org/packages/MSEssentials.AspNetCore.Attributes/) |
|
||||
| MSEssentials.UI.Common.Converters | [](https://www.nuget.org/packages/MSEssentials.UI.Common.Converters/) |
|
||||
| MSEssentials.UI.WinUI.Behaviors | [](https://www.nuget.org/packages/MSEssentials.UI.WinUI.Behaviors/) |
|
||||
| MSEssentials.UI.WinUI.Converters | [](https://www.nuget.org/packages/MSEssentials.UI.WinUI.Converters/) |
|
||||
| MSEssentials.UI.WinUI.Controls | [](https://www.nuget.org/packages/MSEssentials.UI.WinUI.Controls/) |
|
||||
|
||||
## Features
|
||||
|
||||
- **ObservableKeyValuePair** - observable version of KeyValuePair
|
||||
- **ObservableDictionary** - observable version of Dictionary
|
||||
- **NavigationViewItem** - list item model (for example for navigation controls), allows to bind item to view model
|
||||
|
||||
## Installation and usage
|
||||
|
||||
You can download package from official NuGet registry or .nupkg file itself from Releases tab.
|
||||
|
||||
**CLI:**
|
||||
|
||||
```
|
||||
dotnet add package MSEssentials.UI.Common.MVVM
|
||||
```
|
||||
|
||||
**Package reference in .csproj file:**
|
||||
|
||||
```
|
||||
<PackageReference Include="MSEssentials.UI.Common.MVVM" Version="<version>" />
|
||||
```
|
||||
|
||||
## Attribution and contribution
|
||||
|
||||
This project is open source on MIT License, so you can just copy and upload again to your repository. But according to the license, you must include information about the original author. You can find license [here](https://repos.mateuszskoczek.com/MSEssentials/MSEssentials.UI.Common.MVVM/src/branch/main/LICENSE).
|
||||
|
||||
However, the preferred way to contribute would be to propose improvements in a pull request, through issues, or through other means of communication.
|
||||
|
||||
**Other sources:**
|
||||
|
||||
- Icon by [Icons8](icons8.com)
|
||||
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
52
README.md
52
README.md
@@ -1,10 +1,10 @@
|
||||
<p align="center"><img src=".gitea/readme/icon.png"/></p>
|
||||
|
||||
<h1 align="center">SimpleToolkit.MVVM</h1>
|
||||
<h1 align="center">MSEssentials.UI.Common.MVVM</h1>
|
||||
|
||||
<h3 align="center"><b>Set of helpers, class extensions, UI controls used in my other C# projects</b></h3>
|
||||
|
||||
<p align="center">SimpleToolkit is package of useful classes, helpers, extensions and UI controls, I use in my C# projects. MVVM subpackage contains models and helper classes for implementing MVVM architecture.</p>
|
||||
<p align="center">MSEssentials is package of useful classes, helpers, extensions and UI controls, I use in my C# projects. MVVM subpackage contains models and helper classes for implementing MVVM architecture.</p>
|
||||
|
||||
---
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
> [!Important]
|
||||
> **For Github users:**
|
||||
>
|
||||
> This is only mirror repository. All changes are first uploaded to the repository <a href="https://repos.mateuszskoczek.com/SimpleToolkit/SimpleToolkit.MVVM">here</a>. Releases are also published on original repository. However, Github repository handles issues and pull requests for better accessibility.
|
||||
> This is only mirror repository. All changes are first uploaded to the repository <a href="https://repos.mateuszskoczek.com/MSEssentials/MSEssentials.UI.Common.MVVM">here</a>. Releases are also published on original repository. However, Github repository handles issues and pull requests for better accessibility.
|
||||
|
||||
## NuGet registry status
|
||||
|
||||
@@ -28,10 +28,10 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>SimpleToolkit.MVVM</b>
|
||||
<b>MSEssentials.UI.Common.MVVM</b>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.mvvm/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.MVVM?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.UI.Common.MVVM/"><img src="https://img.shields.io/nuget/v/MSEssentials.UI.Common.MVVM.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -41,58 +41,50 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.Extensions
|
||||
MSEssentials.Extensions
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.extensions/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.Extensions?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.Extensions/"><img src="https://img.shields.io/nuget/v/MSEssentials.Extensions.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.Attributes
|
||||
MSEssentials.AspNetCore.Attributes
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.attributes/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.Attributes?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.AspNetCore.Attributes/"><img src="https://img.shields.io/nuget/v/MSEssentials.AspNetCore.Attributes.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.UI.Models
|
||||
MSEssentials.UI.Common.Converters
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.models/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.UI.Models?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.UI.Common.Converters/"><img src="https://img.shields.io/nuget/v/MSEssentials.UI.Common.Converters.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.UI.WinUI.Behaviors
|
||||
MSEssentials.UI.WinUI.Behaviors
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.behaviors/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.UI.WinUI.Behaviors?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.UI.WinUI.Behaviors/"><img src="https://img.shields.io/nuget/v/MSEssentials.UI.WinUI.Behaviors.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.UI.WinUI.Converters
|
||||
MSEssentials.UI.WinUI.Converters
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.converters/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.UI.WinUI.Converters?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.UI.WinUI.Converters/"><img src="https://img.shields.io/nuget/v/MSEssentials.UI.WinUI.Converters.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.UI.WinUI.Controls
|
||||
MSEssentials.UI.WinUI.Controls
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.controls/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.UI.WinUI.Controls?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
SimpleToolkit.UI.WinUI.Helpers
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.helpers/"><img src="https://img.shields.io/gitea/v/release/SimpleToolkit/SimpleToolkit.UI.WinUI.Helpers?gitea_url=https%3A%2F%2Frepos.mateuszskoczek.com%2F&display_name=release&label=nuget"></a>
|
||||
<a href="https://www.nuget.org/packages/MSEssentials.UI.WinUI.Controls/"><img src="https://img.shields.io/nuget/v/MSEssentials.UI.WinUI.Controls.svg?style=flat-square"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -101,27 +93,27 @@
|
||||
|
||||
- **ObservableKeyValuePair** - observable version of KeyValuePair
|
||||
- **ObservableDictionary** - observable version of Dictionary
|
||||
- **NavigationViewItem** - list item model (for example for navigation controls), allows to bind item to view model
|
||||
|
||||
## Installation and usage
|
||||
|
||||
To download package from organization package registry, you have to add new NuGet package source. You will need access details, which you can obtain by contacting the repository owner. You can also download .nupkg file from repository Releases page.
|
||||
You can download package from official NuGet registry or .nupkg file itself from Releases tab.
|
||||
|
||||
**CLI:**
|
||||
|
||||
```
|
||||
dotnet nuget add source --name SimpleToolkit --username <username> --password <password> https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
dotnet add package --source SimpleToolikt SimpleToolkit.MVVM
|
||||
dotnet add package MSEssentials.UI.Common.MVVM
|
||||
```
|
||||
|
||||
**Package reference in .csproj file:**
|
||||
|
||||
```
|
||||
<PackageReference Include="SimpleToolkit.MVVM" Version="<version>" />
|
||||
<PackageReference Include="MSEssentials.UI.Common.MVVM" Version="<version>" />
|
||||
```
|
||||
|
||||
## Attribution and contribution
|
||||
|
||||
This project is open source on MIT License, so you can just copy and upload again to your repository. But according to the license, you must include information about the original author. You can find license <a href="https://repos.mateuszskoczek.com/SimpleToolkit/SimpleToolkit.MVVM/src/branch/main/LICENSE">here</a>.
|
||||
This project is open source on MIT License, so you can just copy and upload again to your repository. But according to the license, you must include information about the original author. You can find license <a href="https://repos.mateuszskoczek.com/MSEssentials/MSEssentials.UI.Common.MVVM/src/branch/main/LICENSE">here</a>.
|
||||
|
||||
However, the preferred way to contribute would be to propose improvements in a pull request, through issues, or through other means of communication.
|
||||
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
# SimpleToolkit.MVVM
|
||||
|
||||
### Set of helpers, class extensions, UI controls used in my other C# projects
|
||||
|
||||
SimpleToolkit is package of useful classes, helpers, extensions and UI controls, I use in my C# projects. MVVM subpackage contains class, method and property MVVM.
|
||||
|
||||
---
|
||||
|
||||
## NuGet registry status
|
||||
|
||||
| Subpackage | Status |
|
||||
|-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| **SimpleToolkit.MVVM** | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.mvvm/) |
|
||||
| SimpleToolkit.Extensions | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.extensions/) |
|
||||
| SimpleToolkit.Attributes | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.attributes/) |
|
||||
| SimpleToolkit.UI.Models | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.models/) |
|
||||
| SimpleToolkit.UI.WinUI.Behaviors | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.behaviors/) |
|
||||
| SimpleToolkit.UI.WinUI.Converters | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.converters/) |
|
||||
| SimpleToolkit.UI.WinUI.Controls | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.controls/) |
|
||||
| SimpleToolkit.UI.WinUI.Helpers | [](https://repos.mateuszskoczek.com/SimpleToolkit/-/packages/nuget/simpletoolkit.ui.winui.helpers/) |
|
||||
|
||||
## Features
|
||||
|
||||
- **ObservableKeyValuePair** - observable version of KeyValuePair
|
||||
- **ObservableDictionary** - observable version of Dictionary
|
||||
-
|
||||
## Installation and usage
|
||||
|
||||
To download package from organization package registry, you have to add new NuGet package source. You will need access details, which you can obtain by contacting the repository owner. You can also download .nupkg file from repository Releases page.
|
||||
|
||||
**CLI:**
|
||||
|
||||
```
|
||||
dotnet nuget add source --name SimpleToolkit --username <username> --password <password> https://repos.mateuszskoczek.com/api/packages/SimpleToolkit/nuget/index.json
|
||||
dotnet add package --source SimpleToolikt SimpleToolkit.MVVM
|
||||
```
|
||||
|
||||
**Package reference in .csproj file:**
|
||||
|
||||
```
|
||||
<PackageReference Include="SimpleToolkit.MVVM" Version="<version>" />
|
||||
```
|
||||
|
||||
## Attribution and contribution
|
||||
|
||||
This project is open source on MIT License, so you can just copy and upload again to your repository. But according to the license, you must include information about the original author. You can find license [here](https://repos.mateuszskoczek.com/SimpleToolkit/SimpleToolkit.MVVM/src/branch/main/LICENSE).
|
||||
|
||||
However, the preferred way to contribute would be to propose improvements in a pull request, through issues, or through other means of communication.
|
||||
|
||||
**Other sources:**
|
||||
|
||||
- Icon by [Icons8](icons8.com)
|
||||
Reference in New Issue
Block a user