Xamarin.iOS 封裝委託事件

來源:互聯網
上載者:User

前些天寫的部落格,自訂了一個組合view,由於對c#的事件機制不瞭解,所以view中的按鈕回調Controller的方式我選擇了開發Android時常使用的介面回調。在同事指出問題後我查閱了一些資料,看了幾本書中c#委託機制的資料。最後封裝了一下委託事件匯流排,java慢慢也在模仿這種委託機制。

下面貼出封裝的類以及使用方法。

先貼出封裝的委託機制的類:

using System;namespace RuilaiGrow.iOS{/// <summary>/// 委託事件匯流排 基類/// by ge/// </summary>public class EventBus : EventArgs{public EventBus(string bus){this.Bus = bus;}public string Bus { get; set; }}public class EventBusDealer {public event EventHandler<EventBus> NewBusInfo;public void NewBus(object sender, string bus) {RaiseNewBusInfo(sender, bus);}protected void RaiseNewBusInfo(object sender, string bus){EventHandler<EventBus> newBusInfo = NewBusInfo;if (newBusInfo != null) {newBusInfo(sender, new EventBus(bus));}}}}


在貼出使用方法,舉例子,情境:假如現在在我自訂的view中有一個按鈕,在他的點擊事件中回調到介面幾個資料。

第一步,在自訂的view中執行個體化封裝的話委託事件對象:

//委託事件public EventBusDealer eventBus = new EventBusDealer();
在點擊事件中:

Button.TouchUpInside += (sender, e) =>{eventBus.NewBus(_list[index], "");};

在介面Controller中使用view找到委託事件的對象並綁定事件:

ListView.eventBus.NewBusInfo += (object sender, EventBus e) => { //事件發送到這裡};

上面我封裝的EventBus(Android我一直使用的就是EventBus,所以從情懷的角度起名叫這個,不要誤導大家。我自己寫iOS的demo時候,程式的icon一直用的是Android的小機器人表徵圖,哈哈哈)發送的第二個參數是String,可以自行修改達到自己的需求。






相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.