次の方法で共有


IsStringNotNullOrWhiteSpaceConverter

IsStringNotNullOrWhiteSpaceConverter は、バインディング値が null 値でなく、string.Empty でなく、空白文字を単独で含んでいないという条件を満たすかどうかを示す bool を返す一方向のコンバーターです。

Convert メソッドは、バインディング valuenullなくstring.Emptyなく、空白文字以外を含んでいる場合に、true を返します。

この ConvertBack メソッドはサポートされていません。 逆のビヘイビアーについては、IsStringNullOrWhitespaceConverter を参照してください。

BaseConverter のプロパティ

基底クラス public abstract class BaseConverter には、以下のプロパティが実装されています。

プロパティ 説明
DefaultConvertReturnValue IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

ICommunityToolkitValueConverter プロパティ

public interface ICommunityToolkitValueConverter には以下のプロパティが実装されています。

プロパティ タイプ 説明
DefaultConvertReturnValue object? IValueConverter.Convert(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。
DefaultConvertBackReturnValue object? IValueConverter.ConvertBack(object?, Type, object?, CultureInfo?)Exception をスローしたときに返される既定値。 この値は、CommunityToolkit.Maui.Options.ShouldSuppressExceptionsInConverterstrue に設定されている場合に使用されます。

構文

XAML

XAML 名前空間を含める

XAML でこのツールキットを使用するには、次の xmlns をページまたはビューに追加する必要があります。

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

したがって、以下のコードは、

<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>

次のように、xmlns を含むように変更されます。

<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>

IsStringNotNullOrWhitespaceConverter の使用

IsStringNotNullOrWhiteSpaceConverter は、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.IsStringNotNullOrWhiteSpaceConverterPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <toolkit:IsStringNotNullOrWhiteSpaceConverter x:Key="IsStringNotNullOrWhiteSpaceConverter" />
        </ResourceDictionary>
    </ContentPage.Resources>

    <Label Text="A value has been entered"
           IsVisible="{Binding MyValue, Converter={StaticResource IsStringNotNullOrWhiteSpaceConverter}}" />

</ContentPage>

C#

IsStringNotNullOrWhiteSpaceConverter は、C# では次のように使用できます。

class IsStringNotNullOrWhiteSpaceConverterPage : ContentPage
{
    public IsStringNotNullOrWhiteSpaceConverterPage()
    {
        var label = new Label { Text = "A value has been entered" };

        label.SetBinding(
            Label.IsVisibleProperty,
            new Binding(
                static (ViewModels vm) => vm.MyValue,
                converter: new IsStringNotNullOrWhiteSpaceConverter()));

        Content = label;
    }
}

C# Markup

この CommunityToolkit.Maui.Markup パッケージは、C# でこのコンバーターを使用するためのより簡潔な方法を提供します。

using CommunityToolkit.Maui.Markup;

class IsStringNotNullOrWhiteSpaceConverterPage : ContentPage
{
    public IsStringNotNullOrWhiteSpaceConverterPage()
    {
        Content = new Label { Text = "A value has been entered" }
            .Bind(
                Label.IsVisibleProperty,
                static (ViewModel vm) => vm.MyValue,
                converter: new IsStringNotNullOrWhiteSpaceConverter());
    }
}

このコンバーターの動作の例は「.NET MAUI Community Toolkit サンプル アプリケーション」で確認できます。

API

IsStringNotNullOrWhiteSpaceConverter のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。