2013-08-14 4 views
0

Являются эксклюзивными EventHandlers для Monodroid/Xamarin.Android (то есть AdapterView.ItemClick), предназначенные для удобства по сравнению с Android-слушателями Android (AdapterView.setOnItemClickListener()), так что они могут быть взаимозаменяемы произвольно с одним другой, или они обеспечивают какую-то работу или что-то еще?Прослушиватели Android VS Monodroid EventHandlers

В любом случае, У меня возникли проблемы выяснить, что параметр объекта (т.е. отправителя) в EventHandler, и не может найти документацию по нему в любом месте.

EventHandler AndapterView.ItemClick в определяется как:

public void ItemClickEventHandler(object sender, ListView.ItemClickEventArgs args) 
{ 
    // what is sender ? 
} 

и конкретный Слушатель Android выглядит следующим образом:

public void onItemClick(AdapterView parent, View view, int position, long id) 
{   
    // sender == parent ?? 
    // sender == view ?? 
} 

Поэтому я хотел бы предположить, что отправитель эквивалентно род. или вид.

Есть ли соглашение о том, для какого отправителя назначено через все монодомные эксклюзивные EventHandlers?

Я также очень благодарен за документацию, потому что я не мог найти его здесь: http://androidapi.xamarin.com/?link=T%3aAndroid.Widget.AdapterView и моя пробная версия Reflector закончилась (в противном случае я бы посмотрел сам).

спасибо.

+1

http://ilspy.net/ – SLaks

+0

@SLaks Неоценимый !!! – samosaris

ответ

0

отправитель является родителем, содержащий мнение о том, что пользователь нажимает на него (так что, в данном случае, это будет AdapterView).

Аргументы из ассоциированного Android Listener упакованы в арг

СПАСИБО SLaks !!!

public class ItemClickEventArgs : EventArgs 
{ 
    private AdapterView parent; 
    private View view; 
    private int position; 
    private long id; 

    public AdapterView Parent { get { return this.parent; } } 
    public View View { get { return this.view; } } 
    public int Position { get { return this.position; } } 
    public long Id { get { return this.id; } } 

    public ItemClickEventArgs(AdapterView parent, View view, int position, long id) 
    { 
     this.parent = parent; 
     this.view = view; 
     this.position = position; 
     this.id = id; 
    } 
}