Işleyici
.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI), verileri görüntülemek, eylemleri başlatmak, etkinliği göstermek, koleksiyonları görüntülemek, veri seçmek ve daha fazlasını yapmak için kullanılabilecek platformlar arası denetimlerden oluşan bir koleksiyon sağlar. Her denetimin, denetimi soyutlayan bir arabirim gösterimi vardır. Bu arabirimleri uygulayan platformlar arası denetimler, sanal görünümler olarak bilinir. İşleyiciler , bu sanal görünümleri her platformdaki yerel görünümler olarak bilinen denetimlerle eşler. İşleyiciler ayrıca temel alınan yerel görünümün örneğini oluşturma ve platformlar arası denetim API'sini yerel görünüm API'sine eşlemeden de sorumludur. Örneğin, iOS'ta bir işleyici bir .NET MAUI'sini Button bir iOS ile eşler UIButton
. Android'de Button , ile AppCompatButton
eşlenir:
.NET MAUI işleyicilerine, IButton
Buttongibi denetime özgü arabirimleri aracılığıyla erişilir. Bu, platformlar arası denetimin işleyicisine başvurmasını ve işleyicinin platformlar arası denetime başvurmasını önler.
Her işleyici sınıfı, özelliği aracılığıyla PlatformView
platformlar arası denetim için yerel görünümü kullanıma sunar. Bu özelliğe yerel görünüm özelliklerini ayarlamak, yerel görünüm yöntemlerini çağırmak ve yerel görünüm olaylarına abone olmak için erişilebilir. Ayrıca, işleyici tarafından uygulanan platformlar arası denetim özelliği VirtualView
aracılığıyla kullanıma sunulur.
Uygulaması her platformda yerel görünümler tarafından sağlanan bir platformlar arası denetim oluşturduğunuzda, platformlar arası denetim API'sini yerel görünüm API'lerine eşleyen bir işleyici uygulamanız gerekir. Daha fazla bilgi için bkz . İşleyicilerle özel denetimler oluşturma.
Ayrıca, denetimin API'si aracılığıyla mümkün olan özelleştirmenin ötesinde mevcut platformlar arası denetimlerin görünümünü ve davranışını artırmak için işleyicileri özelleştirebilirsiniz. Bu işleyici özelleştirmesi, platformlar arası denetimin yerel görünümlerini değiştirir. İşleyiciler geneldir ve bir denetim için işleyiciyi özelleştirmek, uygulamanızda aynı türdeki tüm denetimlerin özelleştirilmesine neden olur. Daha fazla bilgi için bkz . İşleyicilerle .NET MAUI denetimlerini özelleştirme.
Mappers
.NET MAUI işleyicilerinin temel kavramlarından biri eşleyicilerdir. Her işleyici genellikle platformlar arası denetimin API'sini yerel görünümün API'sine eşleyen bir özellik eşleyicisi ve bazen bir komut eşleyicisi sağlar.
Özellik eşleyicisi , platformlar arası denetimde bir özellik değişikliği gerçekleştiğinde hangi Eylemlerin gerçekleştireceğini tanımlar. Bu, platformlar arası denetimin özelliklerini ilişkili Eylemleriyle eşleyen bir Dictionary
işlemdir. Ardından her platform işleyicisi, yerel görünüm API'sini işleyen Eylemlerin uygulamalarını sağlar. Bu, bir özellik platformlar arası denetimde ayarlandığında temel alınan yerel görünümün gerektiği gibi güncelleştirilmesini sağlar.
Komut eşleyicisi , platformlar arası denetim komutları yerel görünümlere gönderdiğinde hangi Eylemlerin gerçekleştireceklerini tanımlar. Bunlar özellik eşleyicilerine benzer, ancak ek verilerin geçirilmesine izin verir. Bu bağlamdaki bir komut bir ICommand uygulama anlamına gelmez. Bunun yerine, komut yalnızca bir yönergedir ve isteğe bağlı olarak verileri yerel görünüme gönderilir. Komut eşleyicisi, platformlar arası denetimin komutunu ilişkili Eylemleriyle eşleyen bir Dictionary
eylemdir. Ardından her işleyici, yerel görünüm API'sini işleyen Eylemlerin uygulamalarını sağlar. Bu, platformlar arası denetim yerel görünümüne bir komut gönderdiğinde yerel görünümün gerektiği gibi güncelleştirilmesini sağlar. Örneğin, bir ScrollView kaydırıldığında, kaydırma konumu bağımsız değişkenini ScrollViewHandler
kabul eden bir Eylem çağırmak için bir komut eşleyicisi kullanır. Daha sonra Eylem, temel alınan yerel görünüme bu konuma kaydırmasını emreder.
Yerel görünümleri güncelleştirmek için eşleyicileri kullanmanın avantajı, yerel görünümlerin platformlar arası denetimlerden ayrıştırılabilmesidir. Bu, yerel görünümlerin platformlar arası denetim olaylarına abone olma ve abonelikten çıkma gereksinimini ortadan kaldırır. Ayrıca, eşleyiciler alt sınıflama olmadan değiştirilebildiği için kolay özelleştirme sağlar.
İşleyici yaşam döngüsü
tüm işleyici tabanlı .NET MAUI denetimleri iki işleyici yaşam döngüsü olayını destekler:
HandlerChanging
, platformlar arası denetim için yeni bir işleyici oluşturulmak üzereyken ve mevcut bir işleyici platformlar arası denetimden kaldırılacakken oluşturulur. BuHandlerChangingEventArgs
olaya eşlik eden nesnenin türündeIElementHandler
veOldHandler
özellikleri vardırNewHandler
.NewHandler
özelliği olmadığındanull
, olay platformlar arası denetim için yeni bir işleyicinin oluşturulmak üzere olduğunu gösterir.OldHandler
özelliği olmadığındanull
, olay var olan yerel denetimin platformlar arası denetimden kaldırıldığını ve bu nedenle tüm yerel olayların yapılandırılması ve diğer temizlemenin gerçekleştirilmesi gerektiğini gösterir.HandlerChanged
, platformlar arası denetim işleyicisi oluşturulduktan sonra oluşturulur. Bu olay, platformlar arası denetimi uygulayan yerel denetimin kullanılabilir olduğunu ve platformlar arası denetimde ayarlanan tüm özellik değerlerinin yerel denetime uygulandığını gösterir.
Not
Olay HandlerChanging
, olaydan önce platformlar arası bir denetimde HandlerChanged
oluşturulur.
Bu olaylara ek olarak, her platformlar arası denetimin de olay tetiklendiğinde HandlerChanging
çağrılan geçersiz kılınabilir OnHandlerChanging
bir yöntemi ve olay tetiklendiğinde HandlerChanged
çağrılan bir OnHandlerChanged
yöntemi vardır.
İşleyicileri görüntüleme
Aşağıdaki tabloda .NET MAUI'de görünümleri uygulayan türler listelenmiştir:
Sayfa işleyicileri
Aşağıdaki tabloda .NET MAUI'de sayfaları uygulayan türler listelenmiştir:
Sayfa | Android İşleyicisi | iOS/Mac Katalizör İşleyicisi | Windows İşleyicisi | Özellik Eşleyicisi | Komut Eşleyicisi |
---|---|---|---|---|---|
ContentPage | PageHandler | PageHandler | PageHandler | Mapper | CommandMapper |
FlyoutPage | FlyoutViewHandler | Telefon FlyoutPageRenderer | FlyoutViewHandler | Mapper |
CommandMapper |
NavigationPage | NavigationViewHandler | NavigationRenderer | NavigationViewHandler | Mapper |
CommandMapper |
TabbedPage | TabbedViewHandler | TabbedRenderer | TabbedViewHandler | Mapper |
CommandMapper |
Shell | ShellHandler |
ShellRenderer | ShellRenderer | Mapper |
CommandMapper |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin