.NET MAUI Markup Community Toolkitは、XAMLを必要とせずに、開発者がMVVM、バインディング、リソース辞書などを使用してアプリのアーキテクトを継続できるようにする流fluentC#拡張法のコレクションです。
すべての機能は、私たちの驚くべき.NETコミュニティであるお客様から貢献され、メンテナーのコアセットによって維持されています。
そして - 最良の部分 - .NET Maui Toolkitに追加する機能は、いつか公式の.NET Maui Libraryに含めることができます!コミュニティツールキットを活用して新機能をデビューさせ、.NET MAUIエンジニアリングチームと緊密に連携して、プロモーションの機能を指名します。
.NET MAUI Community Toolkitを使用するには、次のようにMauiProgram.cs
ファイルの拡張メソッドを呼び出す必要があります。
using CommunityToolkit . Maui . Markup ;
public static MauiApp CreateMauiApp ( )
{
var builder = MauiApp . CreateBuilder ( ) ;
// Initialise the toolkit
builder . UseMauiApp < App > ( ) . UseMauiCommunityToolkitMarkup ( ) ;
// the rest of your logic...
}
CommunityToolkit.Maui.Markup
のすべてのドキュメントは、Microsoft Learnでここにあります:
https://learn.microsoft.com/dotnet/communitytoolkit/maui/markup/markup
マークアップパッケージを使用して一般的なタスクをどのように達成できるかを示す簡単な例をいくつか紹介します。
C#マークアップを使用すると、バインディングを流fluentに定義できるため、複数のメソッドを連鎖させてコードの冗長性を低減できます。
new Entry ( )
. Bind ( Entry . TextProperty , static ( ViewModel vm ) => vm . RegistrationCode ) ;
Bind
メソッドの可能なオプションの詳細については、 BindableObject
Extensionsドキュメントを参照してください。
マークアップを使用すると、サイジングを流fluentに定義できるため、複数のメソッドを連鎖させてコードの冗長性を減らします。
new Entry ( ) . Size ( 200 , 40 ) ;
Size
方法の可能なオプションの詳細については、 VisualElement
Extensionsのドキュメントを参照してください。
この例では、子供のLabel
とEntry
オブジェクトを備えたGrid
オブジェクトを作成します。 Label
テキストが表示され、 Entry
データはViewModelのRegistrationCode
プロパティにバインドされます。各子ビューは、 Grid
内の特定の行に表示されるように設定されており、 Entry
Grid
内のすべての列に及びます。さらに、 Entry
の高さは、キーボード、色、テキストのフォントサイズ、およびMargin
とともに設定されています。
C#マークアップ拡張機能を使用すると、開発者はenum
を使用して列と行( Column.Input
など)の名前を定義できます。
C#マークアップにより、これをFluent APIを使用して定義できます。
using static CommunityToolkit . Maui . Markup . GridRowsColumns ;
class SampleContentPage : ContentPage
{
public SampleContentPage ( )
{
Content = new Grid
{
RowDefinitions = Rows . Define (
( Row . TextEntry , 36 ) ) ,
ColumnDefinitions = Columns . Define (
( Column . Description , Star ) ,
( Column . Input , Stars ( 2 ) ) ) ,
Children =
{
new Label ( )
. Text ( " Code: " )
. Row ( Row . TextEntry ) . Column ( Column . Description ) ,
new Entry
{
Keyboard = Keyboard . Numeric ,
BackgroundColor = Colors . AliceBlue ,
} . Row ( Row . TextEntry ) . Column ( Column . Input )
. FontSize ( 15 )
. Placeholder ( " Enter number " )
. TextColor ( Colors . Black )
. Height ( 44 )
. Margin ( 5 , 5 )
. Bind ( Entry . TextProperty , static ( ViewModel vm ) vm => vm . RegistrationCode )
}
} ;
}
enum Row { TextEntry }
enum Column { Description , Input }
}
新しい機能は、以下の手順で詳細に説明されています。
新しいMaui Toolkit機能に関する議論は、このレポで議論の形で行われます。
機能を提案したい場合は、現在のデザインノートや提案などについて話し合います。新しいディスカッショントピックを開いてください。
短くてトピックにとどまる議論は、読む可能性がはるかに高くなります。コメント番号50を残した場合、それを読む人は数人しかいません。議論を簡単にナビゲートし、利益を得るために、いくつかの経験則を遵守してください。
構文とセマンティックの詳細の新しい機能を説明する完全に具体化された提案を受けたら、問題を開いてください。提案としてラベル付けされます。この問題に関するコメントスレッドは、提案の詳細、および.NET Maui Toolkitに採用する長所と短所をハッシュアウトまたは簡単に議論するために使用できます。問題が完全な提案であることの棒を満たしていない場合、それを議論に移すことができ、さらに成熟することができます。特定の未解決の問題または提案とのより広範な議論は、多くの場合、問題に関するコメントセクションを乱雑にするのではなく、サイドディスカッションを開くことを保証します。
.NET MAUI Toolkit Coreチームのメンバーが、提案がツールキットへのプロモーションに値することを発見した場合、彼らはそれを擁護することができます。
.NET MAUI Toolkit Core Teamは、提案の採用および/または修正に取り組むことに集合的に投票し、Toolkitに過半数の承認(つまり50%を超える)を要求します。
提案が擁護され、.NET MAUI Toolkit Coreチームから過半数の承認を得ると、プルリクエストを開くことができます。
プルリクエストが提出された後、提案チャンピオンによってレビューおよび承認されます。
すべての新機能では、関連するサンプルを.NET MAUI Toolkitサンプルアプリに追加する必要があります。
プルリクエストを.NET MAUIツールキットに統合する前に、プルリクエスト著者はドキュメントリポジトリにドキュメントを提出する必要があります。
プルリクエストがレビュー +承認され、ドキュメントが書かれ、提出され、承認されると、.NET MAUI Toolkitに追加される新しい機能がマージされます。
.NET Foundationの一部として、.NET Foundation Code of Condyを採用しました。このリポジトリに参加する前に、それに慣れてください。ありがとう!
このプロジェクトは、.NET Foundationによってサポートされています。