2016-04-15 7 views
0

オブジェクトをリストに保存しました。 Xamarin iOSのUIPickerViewに同じリストを追加したいのですが、それはtycastingのエラーを示しています。Xamarin iOSのUIPickerViewにリストを設定する

リストはWebサービスから来ています。

ありがとうございます。

+0

であなたのコードを投稿してください。 –

答えて

2

Xamarinのサンプルを見ましたか? これは特にoneがあなたが探しているものです。以下は、カスタムUIPickerViewを設定するコードのスニペットです。あなたがUIPickerViewModelのサブクラスでモデルを作成する必要があるよう

は、ルックスhereは、このクラスのXamarinからドキュメント

void CreatePicker() 
    { 
     // 
     // Empty is used, since UIPickerViews have auto-sizing, 
     // all that is required is the origin 
     // 
     myPickerView = new UIPickerView (CGRect.Empty){ 
      AutoresizingMask = UIViewAutoresizing.FlexibleWidth, 
      ShowSelectionIndicator = true, 
      Model = new PeopleModel (this), 
      BackgroundColor = backgroundColor, 
      Hidden = true 
     }; 
     // Now update it: 
     myPickerView.Frame = PickerFrameWithSize (myPickerView.SizeThatFits (CGSize.Empty)); 
     View.AddSubview (myPickerView); 
    } 

    public class PeopleModel : UIPickerViewModel { 
     static string [] names = new string [] { 
      "Brian Kernighan", 
      "Dennis Ritchie", 
      "Ken Thompson", 
      "Kirk McKusick", 
      "Rob Pike", 
      "Dave Presotto", 
      "Steve Johnson" 
     }; 

     PickerViewController pvc; 
     public PeopleModel (PickerViewController pvc) { 
      this.pvc = pvc; 
     } 

     public override nint GetComponentCount (UIPickerView v) 
     { 
      return 2; 
     } 

     public override nint GetRowsInComponent (UIPickerView pickerView, nint component) 
     { 
      return names.Length; 
     } 

     public override string GetTitle (UIPickerView picker, nint row, nint component) 
     { 
      if (component == 0) 
       return names [row]; 
      else 
       return row.ToString(); 
     } 

     public override void Selected (UIPickerView picker, nint row, nint component) 
     { 
      pvc.label.Text = String.Format ("{0} - {1}", 
          names [picker.SelectedRowInComponent (0)], 
          picker.SelectedRowInComponent (1)); 
     } 

     public override nfloat GetComponentWidth (UIPickerView picker, nint component) 
     { 
      if (component == 0) 
       return 240f; 
      else 
       return 40f; 
     } 

     public override nfloat GetRowHeight (UIPickerView picker, nint component) 
     { 
      return 40f; 
     } 
    } 
+0

これがあなたを助けてくれましたか?あなたの問題に対する解決策を見つけましたか? –

+0

ピッカーの設定に関するブログ記事が追加されました。 https://www.casseykeating.com/home/2017/6/7/uipickerview-xamarin-ios – cfl

関連する問題