Common.Xamarin.ViewModel
1.0.1
See the version list below for details.
dotnet add package Common.Xamarin.ViewModel --version 1.0.1
NuGet\Install-Package Common.Xamarin.ViewModel -Version 1.0.1
<PackageReference Include="Common.Xamarin.ViewModel" Version="1.0.1" />
paket add Common.Xamarin.ViewModel --version 1.0.1
#r "nuget: Common.Xamarin.ViewModel, 1.0.1"
// Install Common.Xamarin.ViewModel as a Cake Addin #addin nuget:?package=Common.Xamarin.ViewModel&version=1.0.1 // Install Common.Xamarin.ViewModel as a Cake Tool #tool nuget:?package=Common.Xamarin.ViewModel&version=1.0.1
Fix: Fixed a small bug that occasionally would pop up on setting certain types of values.
Common.Xamarin.ViewModel
This is a simple package to add a base class with convenience utilities for ViewModels for Xamarin (and potentially other projects). This is a Net Standard 2.0 Project, if other projects are needed, I accept requests.
AffectsAttribute
Convenience Attribute to allow for Interacting Properties. If you want to change related properties you can add the attribute to a property and any properties listed will also get notified of changes when the initial property changes.
string _title;
[Affects("Capitalized","Lowercase")]
public string Title { get => _title; set => Set(ref _title, value);
public string Capitalized { get => Title.ToUpper(); }
public string Lowercase { get => Title.ToLower(); }
BaseViewModel
Handles Basic ViewModel tasks including
- Implementing INotifyPropertyChanged
- Helper Methods to Handle Notification for the View. 2 Main Types include
- Set<T> Method which can be used in a setter to allow for automatic notification, including related properties if the AffectsAttribute is set on a Property.
bool _busy; public bool IsBusy { get => _busy; set => Set(ref _busy, value); }
- Manual Notification: In the case you want to notify manually, in the case of some background processing or other such instance
public async void DoWork(){ ... NotifyPropertyChanged("CalculatedResult","Result"); }
- Set<T> Method which can be used in a setter to allow for automatic notification, including related properties if the AffectsAttribute is set on a Property.
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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Common.Xamarin.ViewModel:
Package | Downloads |
---|---|
Common.Xamarin.ViewModel.ShellAware
Xamarin.Forms.Shell aware navigation to eliminate boilerplate code, allowing more complex transfer of data between viewmodels in navigation. Framework independent viewmodels that simplify logic. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial Release