2017-10-16 28 views
0

我有兩個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); 
    } 
} 

回答

1

要選擇UIPickerView的值,你可以調用下面的方法:

公共虛擬無效選擇(NINT行,NINT組件,布爾動畫);

此處的組件表示選取器中的列。默認情況下,UIPickerView將有1個組件集,除非您在UIPickerViewModel中的GetComponentCount()中指定了其他值。

就你而言,如果你的顏色列表有10行,並且你想預選第5行。您可以撥打:

pickerView.Select(4,0,true);

相關問題