大阪で(ry

明治時代の大阪の活気を再び!

大阪の皮を被った、技術メモと開発日記。

プログラム等

Visual Studio for Mac for iOS PickerViewer覚書

Visual Studio for Macの覚書です

PickerViewerでデータ追加(海外の掲示板より)

using System;
using UIKit;
using System.Collections.Generic;

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());
		}

	}
}

ここまでがモデル
こっからがPicker

public override void ViewDidLoad()
   PickerDataModel data = new PickerDataModel();
   UIPickerView picker = new UIPickerView();
   data.Items.Add("fuga");
   data.Items.Add("hoge");
   picker.Model = data;
     base.ViewDidLoad();
   // Perform any additional setup after loading the view, typically from a nib.
}

日本のサイトだとpicker.Items.Addとかで直接データを追加してるけど
そんなメソッド出てきませんでした