2017-10-16 4 views
0

私は2つの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コンポーネント、BOOLアニメーション)を選択します。

コンポーネントはピッカーの列を意味します。あなたのUIPickerViewModelにGetComponentCount()の中に他の値を指定しない限り、デフォルトでUIPickerViewは1つのコンポーネントセットを持ちます。

色のリストに10行あり、5行目をあらかじめ選択したい場合は、

pickerView.Select(4、0、true);を呼び出すことができます。

関連する問題