SharedNetCoreLibrary 1.1.14-preview1
dotnet add package SharedNetCoreLibrary --version 1.1.14-preview1
NuGet\Install-Package SharedNetCoreLibrary -Version 1.1.14-preview1
<PackageReference Include="SharedNetCoreLibrary" Version="1.1.14-preview1" />
paket add SharedNetCoreLibrary --version 1.1.14-preview1
#r "nuget: SharedNetCoreLibrary, 1.1.14-preview1"
// Install SharedNetCoreLibrary as a Cake Addin #addin nuget:?package=SharedNetCoreLibrary&version=1.1.14-preview1&prerelease // Install SharedNetCoreLibrary as a Cake Tool #tool nuget:?package=SharedNetCoreLibrary&version=1.1.14-preview1&prerelease
SharedMauiCoreLibrary
A shared library containing recurring features & utilities for .NET MAUI applications
Support me
If you want to support me, you can order over following affilate links (I'll get a small share from your purchase from the corresponding store).
- Prusa: http://www.prusa3d.com/#a_aid=AndreasReitberger *
- Jake3D: https://tidd.ly/3x9JOBp *
- Amazon: https://amzn.to/2Z8PrDu *
- Coinbase: https://advanced.coinbase.com/join/KTKSEBP * (10€ in BTC for you if you open an account)
- TradeRepublic: https://refnocode.trade.re/wfnk80zm * (10€ in stocks for you if you open an account)
(*) Affiliate link Thank you very much for supporting me!
Nuget
Get the latest version from nuget.org<br>
Available content
Please find a list of available content below.
Behaviors
Namespace
xmlns:behaviors="clr-namespace:AndreasReitberger.Shared.Core.Behaviors;assembly=SharedMauiCoreLibrary"
EventToCommandBehavior
This Behavior
executes a Command
when the specified Event
is fired.
<sliders:SfSlider
Margin="0,4"
Minimum="0" Maximum="{Binding LimitFan}"
StepSize="1"
MinorTicksPerInterval="100"
ShowLabels="True"
>
<sliders:SfSlider.Behaviors>
<behaviors:EventToCommandBehavior
EventName="ValueChangeEnd"
Command="{Binding SetFanCommand}"
/>
</sliders:SfSlider.Behaviors>
</sliders:SfSlider>
Converters
Namespace
xmlns:converters="clr-namespace:AndreasReitberger.Shared.Core.Converters;assembly=SharedMauiCoreLibrary"
BooleanReverseVisibilityConverter & BooleanVisibilityConverter
This Converter
converts a Boolean
into a reverse and non-reverse visibility (if value
is true
, it returns false
)
<Label
Style="{StaticResource SmallLabelStyle}"
TextColor="{DynamicResource Error}"
Text="{x:Static localization:Strings.NotAvailableDots}"
IsVisible="{Binding HasDoubleExtruder, Converter={StaticResource BooleanReverseVisibilityConverter}}"
/>
ByteArrayToImageConverter
This Converter
converts a byte[]
into an Image
<Image
VerticalOptions="Start"
Margin="{OnIdiom Phone='-4,0', Tablet='-62,0', Default='-4,0'}"
Source="{Binding Thumbnail, Converter={StaticResource ByteArrayToImageConverter}}"
>
<Image.Style>
<Style TargetType="Image">
<Setter Property="Aspect" Value="AspectFit"/>
<Style.Triggers>
<DataTrigger
TargetType="Image"
Binding="{Binding IsPortrait}"
Value="False">
<Setter Property="Aspect" Value="AspectFill"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
ColorToBlackWhiteConverter
This Converter
converts a Color
into Colors.White
or Colors.Black
. This helps to get the
accurate oreground
for a colored Background
.
<Border
Background="{Binding HexCode, Converter={StaticResource StringToColorConverter}, Mode=OneWay}"
>
<Label
Text="{Binding HexCode}"
TextColor="{Binding Source={RelativeSource AncestorType={x:Type Border}}, Path=Background, Converter={StaticResource BrushToBlackWhiteConverter}, Mode=OneWay}"
Style="{StaticResource LabelStyle}"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Center"
/>
</Border>
DoubleHoursToTimeSpanConverter
This Converter
converts a Double
into a TimeSpan
.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.Style>
<Style TargetType="Label" BasedOn="{StaticResource TitleViewHeadlineLabelStyle}">
<Setter Property="IsVisible" Value="False"/>
<Style.Triggers>
<MultiTrigger
TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding IsPrinting, Mode=TwoWay}" Value="True"/>
<BindingCondition Binding="{Binding ShowRemainingPrintTimeInTitleView}" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True"/>
</MultiTrigger>
</Style.Triggers>
</Style>
</Label.Style>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding RemainingPrintTime, Converter={StaticResource DoubleHoursToTimeSpanConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
DoubleHoursToTimeSpanConverter
This Converter
converts a List<string>
into a single String
with the defined separator char.
LongToGigaByteConverter
This Converter
converts a long
into a Double
. The result wil be in GigaBytes.
LongToMegaByteConverter
This Converter
converts a long
into a Double
. The result wil be in MegaBytes.
StringToColorConverter
This Converter
converts a String
(hex formated string) into a Color
.
UnixDateToDateTimeConverter
This Converter
converts a Double
(UNIX based) into a DateTime
.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding CurrentDateTime, Converter={StaticResource UnixDateToDateTimeConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
UnixDoubleHoursToTimeSpanConverter
This Converter
converts a Double
(UNIX based) into a TimeSpan
.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding RemainingPrintTime, Converter={StaticResource UnixDoubleHoursToTimeSpanConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
UriToStringConverter
This Converter
converts a Uri
into a String
.
Helpers
Namespace
namespace AndreasReitberger.Shared.Core
ViewModelBase
This Class
contains all needed properties for a ViewModel. You can inherit from this Class directly for your ViewModel,
or create an own ViewModelBase and inherit there form this class.
public partial class BaseViewModel : ViewModelBase
{
#region Properties
#region App
bool _isBeta = SettingsStaticDefault.App_IsBeta;
public new bool IsBeta
{
get { return _isBeta; }
set { SetProperty(ref _isBeta, value); }
}
bool _isLightVersion = SettingsStaticDefault.App_IsLightVersion;
public bool IsLightVersion
{
get { return _isLightVersion; }
set { SetProperty(ref _isLightVersion, value); }
}
bool _isTabletMode = false;
public bool IsTabletMode
{
get { return _isTabletMode; }
set { SetProperty(ref _isTabletMode, value); }
}
#endregion
#region Navigation
bool _isViewShown = false;
public bool IsViewShown
{
get { return _isViewShown; }
set { SetProperty(ref _isViewShown, value); }
}
#endregion
#region Connection
bool _isConnecting = false;
public bool IsConnecting
{
get { return _isConnecting; }
set { SetProperty(ref _isConnecting, value); }
}
#endregion
#endregion
#region Constructor
public BaseViewModel()
{
}
#endregion
#region LiveCycle
public void OnDisappearing()
{
try
{
if (SettingsApp.SettingsChanged)
{
// Notify other modules
MessagingCenter.Send(new AppMessageInfo(), AppMessages.OnSettingsChanged.ToString());
SettingsApp.SaveSettings();
SettingsApp.SettingsChanged = false;
}
}
catch (Exception exc)
{
// Log error
EventManager.Instance.LogError(exc);
}
}
#endregion
}
JsonConvertHelper
This Class
uses Newtonsoft.JSON in order to serialize and deserialize objects to strings and vice reverse.
This is helpful if you want to store Collections or custom objects in the MAUI.Preferences (Settings).
// Convert to a String
SettingsApp.WebCam_DefaultWebCamSettings = JsonConvertHelper.ToSettingsString(value);
// Convert back to an object
ObservableCollection<KlipperWebCamSettingsInfo> webcams = JsonConvertHelper.ToObject(SettingsApp.WebCam_Settings, new ObservableCollection<KlipperWebCamSettingsInfo>());
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 is compatible. 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. net9.0 is compatible. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
-
net6.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
-
net7.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
-
net8.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
-
net9.0
- CommunityToolkit.Mvvm (>= 8.4.0)
- Newtonsoft.Json (>= 13.0.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on SharedNetCoreLibrary:
Package | Downloads |
---|---|
SharedMauiCoreLibrary
A core libray used for our .NET MAUI libraries. |
|
SettingsMaui
A .NET MAUI library to store settings locally and in the cloud |
|
SettingsXForm
A .NETStandard Xamarin.Forms library to store settings locally and in the cloud |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.14-preview1 | 47 | 12/19/2024 |
1.1.13 | 592 | 10/21/2024 |
1.1.12 | 195 | 9/20/2024 |
1.1.11 | 105 | 9/10/2024 |
1.1.10 | 346 | 8/10/2024 |
1.1.9 | 117 | 6/14/2024 |
1.1.8 | 149 | 5/10/2024 |
1.1.7 | 474 | 4/11/2024 |
1.1.6 | 122 | 3/28/2024 |
1.1.5 | 98 | 3/27/2024 |
1.1.4 | 136 | 3/20/2024 |
1.1.3 | 106 | 3/19/2024 |
1.1.2 | 175 | 2/12/2024 |
Check GitHub releases for changelog.