Xamarin ios我想从UIPickerView中自动获得第一行而无需选择
问题描述:
我有两个UIPickerViews,我想从UIPickerView1自动选择第一行然后填充UIPickerView2中的数据。Xamarin ios我想从UIPickerView中自动获得第一行而无需选择
当前当我启动一个应用程序时,我必须在UIPickerView1中选择一个项目来填充UIPickerView2中的数据。
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.View.BackgroundColor = UIColor.FromPatternImage(UIImage.FromFile("drawable/BackGro1.png"));
Selling.WebServiceDB ws = new Selling.WebServiceDB();
ws.LevelDataListCompleted += Ws_LevelDataListCompleted;
ws.LevelDataListAsync();
}
private void Ws_LevelDataListCompleted(object sender, Selling.LevelDataListCompletedEventArgs e)
{
if (e.Result.ToString().Equals("0"))
{
}
else
{
List<String> List = new List<String>();
foreach (var item in e.Result)
{
List.Add(item.LevelNameA);
}
var LevelFill = new LevelFill(List);
spinlvl3.Model = LevelFill;
Globals.Globlvlname = LevelFill.SelectedColor;
Selling.WebServiceDB ws2 = new Selling.WebServiceDB();
LevelFill.ColorChanged += (Sender, N) =>
{
Globals.Globlvlname = LevelFill.SelectedColor;
ws2.MajorAListCompleted += Ws2_MajorAListCompleted;
ws2.MajorAListAsync(Globals.Globlvlname);
};
}
}
class LevelFill : UIPickerViewModel
{
List<string> list;
public event EventHandler ColorChanged;
public String SelectedColor { get; private set; }
public LevelFill(List<string> list)
{
this.list = list;
}
public override void Selected(UIPickerView pickerView, nint row, nint component)
{
var color = list[(int)row];
SelectedColor = color;
ColorChanged?.Invoke(null, null);
}
}
答
要选择UIPickerView的值,你可以调用下面的方法:
公共虚拟无效选择(NINT行,NINT组件,布尔动画);
此处的组件表示选取器中的列。默认情况下,UIPickerView将有1个组件集,除非您在UIPickerViewModel中的GetComponentCount()
中指定了其他值。
就你而言,如果你的颜色列表有10行,并且你想预选第5行。您可以拨打:
pickerView.Select(4,0,true);