Haben Sie sich die Proben von Xamarin angesehen? Diese one insbesondere ist genau das, was Sie suchen, unten ist ein Code-Schnipsel, das eine benutzerdefinierte UIPickerView einrichtet.
Sieht aus wie Sie ein Modell erstellen, die eine Unterklasse von UIPickerViewModel ist, here die Dokumente von Xamarin auf dieser Klasse ist
void CreatePicker()
{
//
// Empty is used, since UIPickerViews have auto-sizing,
// all that is required is the origin
//
myPickerView = new UIPickerView (CGRect.Empty){
AutoresizingMask = UIViewAutoresizing.FlexibleWidth,
ShowSelectionIndicator = true,
Model = new PeopleModel (this),
BackgroundColor = backgroundColor,
Hidden = true
};
// Now update it:
myPickerView.Frame = PickerFrameWithSize (myPickerView.SizeThatFits (CGSize.Empty));
View.AddSubview (myPickerView);
}
public class PeopleModel : UIPickerViewModel {
static string [] names = new string [] {
"Brian Kernighan",
"Dennis Ritchie",
"Ken Thompson",
"Kirk McKusick",
"Rob Pike",
"Dave Presotto",
"Steve Johnson"
};
PickerViewController pvc;
public PeopleModel (PickerViewController pvc) {
this.pvc = pvc;
}
public override nint GetComponentCount (UIPickerView v)
{
return 2;
}
public override nint GetRowsInComponent (UIPickerView pickerView, nint component)
{
return names.Length;
}
public override string GetTitle (UIPickerView picker, nint row, nint component)
{
if (component == 0)
return names [row];
else
return row.ToString();
}
public override void Selected (UIPickerView picker, nint row, nint component)
{
pvc.label.Text = String.Format ("{0} - {1}",
names [picker.SelectedRowInComponent (0)],
picker.SelectedRowInComponent (1));
}
public override nfloat GetComponentWidth (UIPickerView picker, nint component)
{
if (component == 0)
return 240f;
else
return 40f;
}
public override nfloat GetRowHeight (UIPickerView picker, nint component)
{
return 40f;
}
}
Bitte Code schreiben. –