zoft.MauiExtensions.Core
1.0.8
See the version list below for details.
dotnet add package zoft.MauiExtensions.Core --version 1.0.8
NuGet\Install-Package zoft.MauiExtensions.Core -Version 1.0.8
<PackageReference Include="zoft.MauiExtensions.Core" Version="1.0.8" />
paket add zoft.MauiExtensions.Core --version 1.0.8
#r "nuget: zoft.MauiExtensions.Core, 1.0.8"
// Install zoft.MauiExtensions.Core as a Cake Addin #addin nuget:?package=zoft.MauiExtensions.Core&version=1.0.8 // Install zoft.MauiExtensions.Core as a Cake Tool #tool nuget:?package=zoft.MauiExtensions.Core&version=1.0.8
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 | net6.0 is compatible. net6.0-android was computed. net6.0-android31.0 is compatible. net6.0-ios was computed. net6.0-ios16.0 is compatible. net6.0-maccatalyst was computed. net6.0-maccatalyst15.4 is compatible. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net6.0-windows10.0.19041 is compatible. 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. |
-
net6.0
- CommunityToolkit.Mvvm (>= 8.0.0)
-
net6.0-android31.0
- CommunityToolkit.Mvvm (>= 8.0.0)
-
net6.0-ios16.0
- CommunityToolkit.Mvvm (>= 8.0.0)
- System.Runtime.InteropServices.NFloat.Internal (>= 6.0.1)
-
net6.0-maccatalyst15.4
- CommunityToolkit.Mvvm (>= 8.0.0)
- System.Runtime.InteropServices.NFloat.Internal (>= 6.0.1)
-
net6.0-windows10.0.19041
- CommunityToolkit.Mvvm (>= 8.0.0)
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 | 253 | 9/19/2024 |
3.1.0 | 135 | 9/6/2024 |
3.0.0 | 5,732 | 12/25/2023 |
2.0.2 | 885 | 4/13/2023 |
2.0.1 | 522 | 4/13/2023 |
2.0.0 | 7,317 | 4/6/2023 |
1.2.0 | 1,178 | 12/7/2022 |
1.1.0 | 709 | 12/6/2022 |
1.1.0-pre001 | 524 | 12/6/2022 |
1.0.8 | 705 | 12/6/2022 |
1.0.7 | 706 | 12/5/2022 |
1.0.6 | 745 | 11/28/2022 |
1.0.5 | 677 | 11/27/2022 |
1.0.4 | 684 | 11/24/2022 |
1.0.3 | 742 | 11/24/2022 |
1.0.2 | 707 | 11/7/2022 |
1.0.1 | 799 | 10/20/2022 |
1.0.0 | 790 | 8/29/2022 |
1.0.0-RC1 | 129 | 5/6/2022 |
1.0.0-alfa.4 | 145 | 10/11/2021 |
1.0.0-alfa.3 | 145 | 9/22/2021 |
1.0.0-alfa.2 | 195 | 7/15/2021 |
1.0.0-alfa.1 | 197 | 6/24/2021 |
Minor bug fixes