xamarin - Why can't I set the appearance of a selected item in UIPickerView? -


i have custom uipickerview set model of in viewcontroller's viewdidload method.

i'm able set appearance of each row item appears in override of getview() pickermodel, so:

 public override uiview getview(uipickerview pickerview, nint row, nint component, uiview view)     {         var selecteditem = pickerview.selectedrowincomponent(0);          uilabel lbl = new uilabel(new cgrect(0, 0, 130f, 40f));         lbl.textcolor = uicolor.black;         lbl.font = uifont.systemfontofsize(12f);         lbl.textalignment = uitextalignment.center;         lbl.text = _values[(int)row];          if (row == selecteditem)         {             lbl.backgroundcolor = mycolours.getbluish;         }          return lbl;     } 

but if statement setting appearance of selected item fires first , last items in picker. why this?

a couple things note delegate , datasource set model after setting model variable in viewcontroller. how delegate , datasource supposed work? other guides suggest overriding viewforrow (viewfor in xamarin) in uipickerview subclass. override isn't getting called when interact picker :(.

it's not working because uipickerview calls getview before row selected.

override selected instead, , update current view:

public override void selected(uipickerview pickerview, nint row, nint component) {     var view = pickerview.viewfor(row, component);     view.backgroundcolor = drive1colours.getbluish; } 

Comments