🍐

MAUIのXAMLで、IsStringNotNullOrEmptyConverterを実装

2023/12/12に公開

便利そうだから使ってみようと思ったのですが、
https://learn.microsoft.com/ja-jp/dotnet/communitytoolkit/maui/converters/is-string-null-or-empty-converter
に書いてある通りにしても、うまく動かないのです。

必要なNugetは?

CommunityToolkit.Mauiです。
(この中にCommunityToolkit.Maui.Core.dllも含まれているのでCommunityToolkit.Maui.Coreのインストールは不要です)

XAMLの書きっぷり

xaml
<!-- 必要 -->
<ContentPage
	xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
</ContentPage>

<!-- 不要
<ContentPage.Resources>
	<ResourceDictionary>
		<toolkit:IsStringNullOrEmptyConverter x:Key="IsStringNotNullOrEmptyConverter" />
	</ResourceDictionary>
</ContentPage.Resources>
-->

<!-- StaticResourceは使わずtoolkit:で良いです -->
<Label
	Text="A value is required"
	IsVisible="{Binding MyValue, Converter={toolkit:IsStringNullOrEmptyConverter}}" 
/>

でもこれではまだ動かないのです。

足りないものは、、、

buiderへの設定のようです。

MauiProgram.cs
public static MauiApp CreateMauiApp()
{
	var builder = MauiApp.CreateBuilder();
	builder
		.UseMauiApp<App>()
		.UseMauiCommunityToolkit();
	return builder.Build();
}

これで動作するようになります。

おわりに

説明文は確かにあるのですが、冒頭のリンクとセットで考えないといけないというのは、なかなか難しいですね。
https://learn.microsoft.com/ja-jp/dotnet/communitytoolkit/maui/get-started?tabs=CommunityToolkitMaui

Discussion