public override View GetView(int position, View convertView, ViewGroup parent) { var wrapperView = (convertView == null) ? new WrapperView(m_Context) : convertView as WrapperView; if (wrapperView == null) { throw new NullReferenceException("Wrapper view can not be null"); } var item = Delegate.GetView(position, wrapperView.Item, wrapperView); View header = null; if (PreviousPositionHasSameHeader(position)) { RecycleHeaderIfExists(wrapperView); } else { header = ConfigureHeader(wrapperView, position); } if ((item is ICheckable) && !(wrapperView is CheckableWrapperView)) { //Need to create Checkable subclass of WrapperView for listview to work correctly wrapperView = new CheckableWrapperView(m_Context); } else if (!(item is ICheckable) && (wrapperView is CheckableWrapperView)) { wrapperView = new WrapperView(m_Context); } wrapperView.Update(item, header, Divider, DividerHeight); return(wrapperView); }
public override View GetView(int position, View convertView, ViewGroup parent) { var wrapperView = (convertView == null) ? new WrapperView(m_Context) : convertView as WrapperView; if(wrapperView == null) throw new NullReferenceException("Wrapper view can not be null"); var item = Delegate.GetView(position, wrapperView.Item, wrapperView); View header = null; if (PreviousPositionHasSameHeader(position)) { RecycleHeaderIfExists(wrapperView); } else { header = ConfigureHeader(wrapperView, position); } if ((item is ICheckable) && !(wrapperView is CheckableWrapperView)) { //Need to create Checkable subclass of WrapperView for listview to work correctly wrapperView = new CheckableWrapperView(m_Context); } else if (!(item is ICheckable) && (wrapperView is CheckableWrapperView)) { wrapperView = new WrapperView(m_Context); } wrapperView.Update(item, header, Divider, DividerHeight); return wrapperView; }