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