У меня есть список, сохраненный в объекте. Я хочу, чтобы заполнить тот же список в UIPickerView
в Xamarin iOS, но он показывает ошибку tcasting.Заполнить список в UIPickerView в Xamarin iOS
этот список исходит из веб-сервиса.
Заранее спасибо.
У меня есть список, сохраненный в объекте. Я хочу, чтобы заполнить тот же список в UIPickerView
в Xamarin iOS, но он показывает ошибку tcasting.Заполнить список в UIPickerView в Xamarin iOS
этот список исходит из веб-сервиса.
Заранее спасибо.
У вас есть образцы образцов от 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;
}
}
Помогло ли вам это? вы нашли решение своей проблемы? –
Добавил сообщение в блоге о настройке Picker, если это помогает. https://www.casseykeating.com/home/2017/6/7/uipickerview-xamarin-ios – cfl
Пожалуйста, ваш код. –