Toolkit Komunitas Markup .NET Maui adalah kumpulan metode ekstensi C# yang lancar yang memungkinkan pengembang untuk melanjutkan arsitektur aplikasi mereka menggunakan MVVM, binding, kamus sumber daya, dll., Tanpa perlu XAML
Semua fitur dikontribusikan oleh Anda, komunitas .NET kami yang luar biasa, dan dikelola oleh serangkaian inti pengelola.
Dan - bagian terbaik - fitur yang Anda tambahkan ke .NET Maui Toolkit suatu hari nanti dapat dimasukkan ke dalam Perpustakaan .NET Maui resmi! Kami memanfaatkan toolkit komunitas untuk debut fitur baru dan bekerja sama dengan tim teknik .NET Maui untuk mencalonkan fitur untuk promosi.
Untuk menggunakan perangkat komunitas .net Maui, Anda perlu memanggil metode ekstensi dalam file MauiProgram.cs
Anda sebagai berikut:
using CommunityToolkit . Maui . Markup ;
public static MauiApp CreateMauiApp ( )
{
var builder = MauiApp . CreateBuilder ( ) ;
// Initialise the toolkit
builder . UseMauiApp < App > ( ) . UseMauiCommunityToolkitMarkup ( ) ;
// the rest of your logic...
}
Semua dokumentasi untuk CommunityToolkit.Maui.Markup
dapat ditemukan di sini di Microsoft Learn:
https://learn.microsoft.com/dotnet/communitytoolkit/maui/markup/markup
Berikut adalah beberapa contoh singkat yang menunjukkan bagaimana tugas umum dapat dicapai melalui penggunaan paket markup.
Markup C# memungkinkan kita untuk mendefinisikan pengikatan dengan lancar dan karenanya rantai beberapa metode bersama -sama untuk mengurangi verbositas kode kita:
new Entry ( )
. Bind ( Entry . TextProperty , static ( ViewModel vm ) => vm . RegistrationCode ) ;
Untuk perincian lebih lanjut tentang opsi yang mungkin untuk metode Bind
lihat dokumentasi BindableObject
Extensions.
Markup memungkinkan kita untuk mendefinisikan ukuran dengan lancar dan karenanya rantai banyak metode bersama -sama untuk mengurangi verbositas kode kita:
new Entry ( ) . Size ( 200 , 40 ) ;
Untuk perincian lebih lanjut tentang opsi yang mungkin untuk metode Size
, lihat dokumentasi Extensions VisualElement
.
Contoh ini membuat objek Grid
, dengan Label
anak dan objek Entry
. Label
menampilkan teks, dan data Entry
mengikat ke properti RegistrationCode
dari ViewModel. Setiap tampilan anak diatur untuk muncul di barisan tertentu di Grid
, dan Entry
mencakup semua kolom dalam Grid
. Selain itu, ketinggian Entry
diatur, bersama dengan keyboard, warna, ukuran font teksnya, dan Margin
.
Ekstensi Markup C# juga memungkinkan pengembang untuk mendefinisikan nama untuk kolom dan baris (misalnya Column.Input
) menggunakan enum
.
C# markup memungkinkan ini untuk didefinisikan menggunakan API yang lancar:
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 }
}
Fitur baru akan mengikuti alur kerja ini, dijelaskan secara lebih rinci dalam langkah -langkah di bawah ini
Debat yang berkaitan dengan fitur Maui Toolkit baru terjadi dalam bentuk diskusi dalam repo ini.
Jika Anda ingin menyarankan fitur, diskusikan catatan atau proposal desain saat ini, dll., Buka topik diskusi baru.
Diskusi yang pendek dan tetap pada topik jauh lebih mungkin dibaca. Jika Anda meninggalkan nomor komentar Fifty, kemungkinan hanya beberapa orang yang akan membacanya. Untuk membuat diskusi lebih mudah dinavigasi dan mendapat manfaat, harap amati beberapa aturan praktis:
Setelah Anda memiliki proposal yang sepenuhnya disempurnakan yang menggambarkan fitur baru dalam detail sintaksis dan semantik, silakan buka masalah untuk itu, dan itu akan diberi label sebagai proposal. Utas komentar tentang masalah ini dapat digunakan untuk hash atau membahas rincian proposal secara singkat, serta pro dan kontra dari mengadopsinya ke dalam toolkit .NET Maui. Jika suatu masalah tidak memenuhi bilah menjadi proposal penuh, kami dapat memindahkannya ke diskusi, sehingga dapat lebih matang. Masalah terbuka khusus atau diskusi yang lebih luas dengan proposal akan sering menjamin membuka diskusi sampingan daripada mengacaukan bagian komentar tentang masalah ini.
Ketika anggota tim inti .NET Maui Toolkit menemukan bahwa proposal pantas dipromosikan ke toolkit, mereka dapat memperjuangkannya, yang berarti bahwa mereka akan membawanya ke standup komunitas .NET Maui Toolkit bulanan.
Tim inti .NET Maui Toolkit akan secara kolektif memilih untuk bekerja mengadopsi dan/atau memodifikasi proposal, membutuhkan persetujuan mayoritas (yaitu lebih dari 50%) untuk ditambahkan ke toolkit.
Setelah proposal telah diperjuangkan dan telah menerima persetujuan mayoritas dari tim inti .NET Maui Toolkit, permintaan tarik dapat dibuka.
Setelah permintaan tarik diajukan, itu akan ditinjau dan disetujui oleh juara proposal.
Setiap fitur baru juga memerlukan sampel terkait untuk ditambahkan ke aplikasi sampel .NET Maui Toolkit.
Sebelum permintaan tarik dapat digabungkan ke dalam toolkit .net Maui, penulis permintaan tarik juga harus mengirimkan dokumentasi ke repositori dokumentasi kami.
Setelah permintaan tarik ditinjau + disetujui dan dokumentasi telah ditulis, dikirimkan dan disetujui, fitur baru akan digabungkan menambahkannya ke .NET Maui Toolkit
Sebagai bagian dari .NET Foundation, kami telah mengadopsi kode perilaku .NET Foundation. Harap biasakan diri Anda dengan itu sebelum berpartisipasi dengan repositori ini. Terima kasih!
Proyek ini didukung oleh .NET Foundation.