StateToBooleanConverter
Le StateToBooleanConverter
est un convertisseur unidirectionnel qui retourne un résultat boolean
basé sur le fait que la valeur fournie provient d’un LayoutState
spécifique.
La méthode Convert
retourne un résultat boolean
en fonction du fait que la valeur fournie provient d’un LayoutState
spécifique. L’enum LayoutState
est fournie par le kit d’outils et propose plusieurs valeurs :
None
Loading
Saving
Success
Error
Empty
Custom
Remarque
Notez que le LayoutState
attendu peut être fourni dans l’ordre de priorité suivant :
- en tant que
ConverterParameter
dans la liaison du convertisseur, il remplace la propriétéStateToCompare
- en tant que propriété
StateToCompare
sur le convertisseur
La méthode ConvertBack
n’est pas prise en charge.
Propriétés BaseConverter
Les propriétés suivantes sont implémentées dans la classe de base, public abstract class BaseConverter
:
Propriété | Description |
---|---|
DefaultConvertReturnValue |
Valeur par défaut à renvoyer lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève un Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est défini sur true . |
DefaultConvertBackReturnValue |
Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève un Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est défini sur true . |
Propriétés ICommunityToolkitValueConverter
Les propriétés suivantes sont implémentées dans le public interface ICommunityToolkitValueConverter
:
Propriété | Type | Description |
---|---|---|
DefaultConvertReturnValue |
object? |
Valeur par défaut à renvoyer lorsque IValueConverter.Convert(object?, Type, object?, CultureInfo?) lève un Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est défini sur true . |
DefaultConvertBackReturnValue |
object? |
Valeur par défaut à retourner lorsque IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?) lève un Exception . Cette valeur est utilisée lorsque CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverters est défini sur true . |
Syntaxe
Les exemples suivants vous montrent comment utiliser le convertisseur pour changer la visibilité d’un contrôle Label
basé sur la propriété LayoutState
qui est modifiée sur un Button
Command
.
XAML
Y compris l’espace de noms XAML
Pour utiliser le kit de ressources dans XAML, le xmlns
suivant doit être ajouté à votre page ou à votre affichage :
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Il en résulte ce qui suit :
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
</ContentPage>
Serait modifié pour inclure le xmlns
de la manière suivante :
<ContentPage
x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>
Utilisation de StateToBooleanConverter
Le StateToBooleanConverter
peut être utilisé de la manière suivante dans XAML :
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
x:Class="CommunityToolkit.Maui.Sample.Pages.Converters.StateToBooleanConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<toolkit:StateToBooleanConverter x:Key="StateToBooleanConverter" StateToCompare="Success" />
</ResourceDictionary>
</ContentPage.Resources>
<VerticalStackLayout VerticalOptions="Center">
<Label
HorizontalOptions="Center"
IsVisible="{Binding LayoutState, Converter={StaticResource StateToBooleanConverter}}"
Text="The state is Success!"
VerticalOptions="Center" />
<Button Command="{Binding ChangeLayoutCommand}" Text="Change state" />
</VerticalStackLayout>
</ContentPage>
C#
Le StateToBooleanConverter
peut être utilisé de la manière suivante dans C# :
class StateToBooleanConverterPage : ContentPage
{
public StateToBooleanConverterPage()
{
var label = new Label
{
HorizontalOptions = LayoutOptions.Center,
Text = "The state is Success!",
VerticalOptions = LayoutOptions.Center
};
label.SetBinding(
Label.IsVisibleProperty,
new Binding(
static (ViewModel vm) => vm.LayoutState,
converter: new StateToBooleanConverter { StateToCompare = LayoutState.Success }));
var button = new Button
{
Text = "Change state"
};
button.SetBinding(
Button.CommandProperty,
nameof(ViewModel.ChangeLayoutCommand));
Content = new VerticalStackLayout
{
Children =
{
label,
button
}
};
}
}
Balisage C#
Notre package CommunityToolkit.Maui.Markup
fournit une manière beaucoup plus concise d’utiliser ce convertisseur en C#.
using CommunityToolkit.Maui.Markup;
class StateToBooleanConverterPage : ContentPage
{
public StateToBooleanConverterPage()
{
Content = new VerticalStackLayout
{
Children =
{
new Label()
.Text("The state is Success!")
.CenterHorizontal()
.CenterVertical()
.Bind(
Label.IsVisibleProperty,
static (ViewModel vm) => vm.LayoutState,
converter: new StateToBooleanConverter { StateToCompare = LayoutState.Success }),
new Button()
.Text("Change state")
.BindCommand(static (ViewModel vm) => vm.ChangeLayoutCommand)
}
};
}
}
Exemples
Vous pouvez trouver un exemple de ce convertisseur en action dans l’exemple d’application de la boîte à outils de la communauté .NET MAUI.
API
Vous pouvez trouver le code source deStateToBooleanConverter
sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.
.NET MAUI Community Toolkit