2016-04-08 14 views
4

Ich versuche nur einige grundlegende Anweisungen zur Verwendung von UiPickerView in Xamarin iOS zu finden. Es gibt Fragen zu Stack Overflow, die bestimmte Fragen beantworten, aber ich suche nur einen einfachen Überblick und hoffe, dass ich den UiPickerView einem ViewController hinzufügen, die Daten verkabeln und Ereignisse registrieren kann. Als Noob zu Xamarin und iOS habe ich Schwierigkeiten, alle Stellen zu katalogisieren, die der Code für diese Art von Steuerung benötigt.Xamarin iOS UiPickerView Tutorial

+3

Mögliche Duplikate von [Picker in Xamarin.iOS verfügbar] (http://stackoverflow.com/qu estions/33900884/picker-in-xamarin-ios-verfügbar) – Jason

+0

http://sushihangover.github.io/xamarin-c-number-uipickerview/ oder https://www.youtube.com/watch?v=lXa9WZMcmoE –

Antwort

1

Diese PickerViewController file im MonoCatalog-MonoDevelop-Sample klingt nach dem, was Sie verlangen.

Insbesondere die CreateCustomPicker Funktion here und die CustomPickerModel Art definiert here.

3

// Set PickerViewModel

var examplePVM = new ExamplePickerViewModel(myListOfItems); 
YourPickerView.Model = examplePVM ; 

// erstellen PickerViewModel

public class ExamplePickerViewModel : UIPickerViewModel 
{ 
    private List<string> _myItems; 
    protected int selectedIndex = 0; 

    public ExamplePickerViewModel(List<string> items) 
    { 
     _myItems = items; 
    } 

    public string SelectedItem 
    { 
     get { return _myItems[selectedIndex]; } 
    } 

    public override nint GetComponentCount (UIPickerView picker) 
    { 
     return 1; 
    } 

    public override nint GetRowsInComponent (UIPickerView picker, nint component) 
    { 
     return _myItems.Count; 
    } 

    public override string GetTitle (UIPickerView picker, nint row, nint component) 
    { 
     return _myItems[row]; 
    } 

    public override void Selected (UIPickerView picker, nint row, nint component) 
    { 
     selectedIndex = (int)row; 
    } 
} 
+0

Schön und ordentlich Gute Antwort! –

0

ich eine blog post geschaffen picker die Grundlagen eines UIPickerView zu decken. Es kann verwirrend sein, Grundidee:

  1. Fügen Sie die UIPickerView zu Ihrem Storyboard usw., geben Sie ihm einen Namen.
  2. Erstellen Sie eine Klasse, die
  3. Stellen Sie das Modell des Picker, pickerExample.Model = new YourListPicker(YourList);
1
// Textfield Click event 
private bool OnTodeapartmentShouldBeginEditing(UITextField textField) 
{ 

// Creating Picker view 
pickerView = new UIPickerView(new CGRect(UIScreen.MainScreen.Bounds.X-UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height -230, UIScreen.MainScreen.Bounds.Width, 180)); 
pickerView.BackgroundColor = UIColor.From#d3d3d3; 
pickerView.ShowSelectionIndicator = true; 

// create done button 
done = new UIButton(new CGRect(pickerView.Frame.X, pickerView.Frame.Y - 50, UIScreen.MainScreen.Bounds.Width, 50)); 
done.BackgroundColor = UIColor.Purple; 
done.SetTitle("Department List", UIControlState.Normal); 

picker = new PickerDataModel(); 
if (departmentList.DepartmentDetail != null) 
{ 

foreach (var item in departmentList.DepartmentDetail) 
{ 
picker.Items.Add(item.Name); 
} 
pickerView.Model = picker; 

view.AddSubviews(pickerView, done); 
// value change event of picker view 
picker.ValueChanged += (s, e) => 
{ 
selectedValue = picker.SelectedItem; 
txtDepartment.Text = selectedValue; 

deptID = departmentList.DepartmentDetail.Find(x => x.Name == selectedValue).DepartmentId; 

}; 
} 
} 

Neue Klasse Datei enter image description here // Picker Data Model Klasse für Picker Ansicht, diese Klassendatei von UIPickerViewModel erstreckt, ist mit auf Hilfsteil für den allgemeinen Gebrauch

public class PickerDataModel : UIPickerViewModel 
{ 
public event EventHandler<EventArgs> ValueChanged; 

/// <summary> 
/// The items to show up in the picker 
/// </summary> 
public List<string> Items { get; private set; } 

/// <summary> 
/// The current selected item 
/// </summary> 
public string SelectedItem 
{ 
get { return Items[SelectedIndex]; } 
} 

public int SelectedIndex 
{ 
get 
{ 
return selectedIndex; 
} 

set 
{ 
selectedIndex = value; 
} 
} 

private int selectedIndex; 

public PickerDataModel() 
{ 
Items = new List<string>(); 
} 

/// <summary> 
/// Called by the picker to determine how many rows are in a given spinner item 
/// </summary> 
public override nint GetRowsInComponent(UIPickerView picker, nint component) 
{ 
return Items.Count; 
} 

/// <summary> 
/// called by the picker to get the text for a particular row in a particular 
/// spinner item 
/// </summary> 
public override string GetTitle(UIPickerView picker, nint row, nint component) 
{ 
return Items[(int)row]; 
} 

/// <summary> 
/// called by the picker to get the number of spinner items 
/// </summary> 
public override nint GetComponentCount(UIPickerView picker) 
{ 
return 1; 
} 

/// <summary> 
/// called when a row is selected in the spinner 
/// </summary> 
public override void Selected(UIPickerView picker, nint row, nint component) 
{ 
SelectedIndex = (int)row; 
if (ValueChanged != null) 
{ 
ValueChanged(this, new EventArgs()); 
} 

} 
} [enter image description here][1] 


    [1]: https://i.stack.imgur.com/Ld1uU.png 
+0

Bitte nur relevanten Code, nicht alle davon – jhhoff02

+0

wie er ist neu, so dass ich posten alle zugehörigen Code, so dass er nicht auf andere Probleme konfrontiert werden –

Verwandte Themen