Aracılığıyla paylaş


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 AppCompatButtoneşlenir:

Button handler architecture.

.NET MAUI işleyicilerine, IButtonButtongibi 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. Bu HandlerChangingEventArgs olaya eşlik eden nesnenin türünde IElementHandlerve OldHandler ö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:

Göster Arabirim İşleyici Özellik Eşleyicisi Komut Eşleyicisi
ActivityIndicator IActivityIndicator ActivityIndicatorHandler Mapper CommandMapper
BlazorWebView IBlazorWebView BlazorWebViewHandler BlazorWebViewMapper
Border IBorderView BorderHandler Mapper CommandMapper
BoxView IShapeView, IShape ShapeViewHandler Mapper CommandMapper
Button IButton ButtonHandler ImageButtonMapper, TextButtonMapper, Mapper CommandMapper
CarouselView CarouselViewHandler Mapper
Cell CellRenderer Mapper CommandMapper
CheckBox ICheckBox CheckBoxHandler Mapper CommandMapper
CollectionView CollectionViewHandler <Mapper
ContentView IContentView ContentViewHandler Mapper CommandMapper
DatePicker IDatePicker DatePickerHandler Mapper CommandMapper
Editor IEditor EditorHandler Mapper CommandMapper
Ellipse IShape ShapeViewHandler Mapper CommandMapper
Entry IEntry EntryHandler Mapper CommandMapper
EntryCell EntryCellRenderer Mapper CommandMapper
Frame FrameRenderer Mapper CommandMapper
GraphicsView IGraphicsView GraphicsViewHandler Mapper CommandMapper
Image IImage ImageHandler Mapper CommandMapper
ImageButton IImageButton ImageButtonHandler ImageMapper, Mapper
ImageCell ImageCellRenderer Mapper CommandMapper
IndicatorView IIndicatorView IndicatorViewHandler Mapper CommandMapper
Label ILabel LabelHandler Mapper CommandMapper
Line IShape LineHandler Mapper CommandMapper
ListView ListViewRenderer Mapper CommandMapper
Map IMap MapHandler Mapper CommandMapper
Path IShape PathHandler Mapper CommandMapper
Picker IPicker PickerHandler Mapper CommandMapper
Polygon IShape PolygonHandler Mapper CommandMapper
Polyline IShape PolylineHandler Mapper CommandMapper
ProgressBar IProgress ProgressBarHandler Mapper CommandMapper
RadioButton IRadioButton RadioButtonHandler Mapper CommandMapper
Rectangle IShape RectangleHandler Mapper CommandMapper
RefreshView IRefreshView RefreshViewHandler Mapper CommandMapper
RoundRectangle IShape RoundRectangleHandler Mapper CommandMapper
ScrollView IScrollView ScrollViewHandler Mapper CommandMapper
SearchBar ISearchBar SearchBarHandler Mapper CommandMapper
Slider ISlider SliderHandler Mapper CommandMapper
Stepper IStepper StepperHandler Mapper CommandMapper
SwipeView ISwipeView SwipeViewHandler Mapper CommandMapper
Switch ISwitch SwitchHandler Mapper CommandMapper
SwitchCell SwitchCellRenderer Mapper CommandMapper
TableView TableViewRenderer Mapper CommandMapper
TextCell TextCellRenderer Mapper CommandMapper
TimePicker ITimePicker TimePickerHandler Mapper CommandMapper
ViewCell ViewCellRenderer Mapper CommandMapper
WebView IWebView WebViewHandler Mapper CommandMapper

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