zoft.MauiExtensions.Core
3.1.0
See the version list below for details.
dotnet add package zoft.MauiExtensions.Core --version 3.1.0
NuGet\Install-Package zoft.MauiExtensions.Core -Version 3.1.0
<PackageReference Include="zoft.MauiExtensions.Core" Version="3.1.0" />
paket add zoft.MauiExtensions.Core --version 3.1.0
#r "nuget: zoft.MauiExtensions.Core, 3.1.0"
// Install zoft.MauiExtensions.Core as a Cake Addin #addin nuget:?package=zoft.MauiExtensions.Core&version=3.1.0 // Install zoft.MauiExtensions.Core as a Cake Tool #tool nuget:?package=zoft.MauiExtensions.Core&version=3.1.0
zoft.MauiExtensions
Set of tools designed to be used in MAUI projects, including Views, ViewModels, Services, Extensions and more...
Nuget Package | Current Version |
---|---|
zoft.MauiExtensions.Core |
Getting Started
Install nuget package: zoft.MauiExtensions.Core
Install-Package zoft.MauiExtensions.Core
How To Use
Refer to the sample to have a better understanding of package capabilities. Bellow you can find the most common features and how to use them
</br>
Localization Service
The package provides a set of tools to implement localization in your app:
ILocalizationService
: Interface for the localization service. The interface exists to make it easier to use iwith IOC and to override the base implementationResourceManagerLocalizationService
: Implementation of theILocalizationService
using resource files (.resx)
builder.Services.AddSingleton<ILocalizationService>(new ResourceManagerLocalizationService(AppResources.ResourceManager, SupportedLanguages.DefaultLanguage));
TranslationMarkup
: XAML markup that provides an easy way to apply the translation directly in XAML
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:zoft="http://zoft.maui.extensions"
x:Class="zoft.MauiExtensions.Sample.Views.LocalizationView"
Title="{zoft:Translate LocalizationPage_Title}">
...
...
<ScrollView>
<VerticalStackLayout Spacing="10">
<Label Text="{zoft:Translate LocalizationPage_Label1}" FontSize="16" FontAttributes="Bold"/>
<Label Text="{zoft:Translate LocalizationPage_Label2}" />
<Label Text="{zoft:Translate LocalizationPage_Label3}" FontAttributes="Italic" BackgroundColor="LightGray"/>
</VerticalStackLayout>
</ScrollView>
...
</ContentPage>
</br>
MainThread Service
At current time, the MAUI essentials implementation of MainThread
is not working for Windows. This package provides a wrapper interface IMainThreadService
and an implementation for all platforms, including Windows.
To use, you just need to register the correct service depending of the platform:
private static MauiAppBuilder RegisterServices(this MauiAppBuilder builder)
{
#if WINDOWS
builder.Services.AddSingleton<IMainThreadService, Platforms.Windows.Services.WindowsMainThreadService>();
#else
builder.Services.AddSingleton<IMainThreadService, MainThreadService>();
#endif
return builder;
}
</br>
CoreViewModel
The CoreViewModel
provides a set of base implementations to use in ViewModels. This implementation is built on top of CommunityToolikt.Mvvm.ObservableObject.
It also uses other CommunityToolkit capabilities, like the ObservableProperty
.
Dependency Management
Allows the configuration of properties and/or methods to react on PropertyChangeEvent
of a specific property
public partial class DependsOnViewModel : CoreViewModel
{
[ObservableProperty]
private string _triggerText;
[DependsOn(nameof(TriggerText))]
public string TargetText => $"TargetText triggered '{TriggerText}'";
[ObservableProperty]
private DateTime _targetDate = DateTime.Now;
[DependsOn(nameof(TriggerText))]
protected void OnTriggerTextChanged()
{
TargetDate = TargetDate.AddDays(1);
}
}
Busy Notification Management
Base methods to execute code in a background thread, while providing with updated on IsBusy
and BusyMessage
properties that can be bound to an UI element (i.e. ActivityIndicator
)
await DoWorkAsync(() => ..., "Busy Message");
var result = await DoWorkAsync(() => return some_object, "BusyMessage");
</br>
Validation Models
tbd...
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-android34.0 is compatible. net8.0-browser was computed. net8.0-ios was computed. net8.0-ios17.5 is compatible. net8.0-maccatalyst was computed. net8.0-maccatalyst17.5 is compatible. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net8.0-windows10.0.19041 is compatible. |
-
net8.0
- CommunityToolkit.Mvvm (>= 8.2.2)
- Microsoft.Maui.Controls (>= 8.0.82)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.82)
-
net8.0-android34.0
- CommunityToolkit.Mvvm (>= 8.2.2)
- Microsoft.Maui.Controls (>= 8.0.82)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.82)
-
net8.0-ios17.5
- CommunityToolkit.Mvvm (>= 8.2.2)
- Microsoft.Maui.Controls (>= 8.0.82)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.82)
-
net8.0-maccatalyst17.5
- CommunityToolkit.Mvvm (>= 8.2.2)
- Microsoft.Maui.Controls (>= 8.0.82)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.82)
-
net8.0-windows10.0.19041
- CommunityToolkit.Mvvm (>= 8.2.2)
- Microsoft.Maui.Controls (>= 8.0.82)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.82)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on zoft.MauiExtensions.Core:
Package | Downloads |
---|---|
zoft.MauiExtensions.Controls.AutoCompleteEntry
.Net MAUI Entry control that provides a list of suggestions as the user types. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.0 | 118 | 9/19/2024 |
3.1.0 | 98 | 9/6/2024 |
3.0.0 | 3,304 | 12/25/2023 |
2.0.2 | 878 | 4/13/2023 |
2.0.1 | 516 | 4/13/2023 |
2.0.0 | 7,032 | 4/6/2023 |
1.2.0 | 1,135 | 12/7/2022 |
1.1.0 | 699 | 12/6/2022 |
1.1.0-pre001 | 520 | 12/6/2022 |
1.0.8 | 695 | 12/6/2022 |
1.0.7 | 698 | 12/5/2022 |
1.0.6 | 737 | 11/28/2022 |
1.0.5 | 669 | 11/27/2022 |
1.0.4 | 676 | 11/24/2022 |
1.0.3 | 732 | 11/24/2022 |
1.0.2 | 699 | 11/7/2022 |
1.0.1 | 791 | 10/20/2022 |
1.0.0 | 776 | 8/29/2022 |
1.0.0-RC1 | 125 | 5/6/2022 |
1.0.0-alfa.4 | 137 | 10/11/2021 |
1.0.0-alfa.3 | 139 | 9/22/2021 |
1.0.0-alfa.2 | 189 | 7/15/2021 |
1.0.0-alfa.1 | 191 | 6/24/2021 |
Deprecated AsyncCommand