Как я могу получить выбранный пункт моего пользовательского выбора? Он всегда возвращается в исходное состояние "Sonstige" (= "Other"). Таким образом, значение не подлежит изменению.
Я часами сталкиваюсь с проблемой, но понятия не имею, как ее исправить. Я новичок в пользовательском рендеринге.
Я хотел бы использовать функцию DoneBtn_Clicked
, чтобы установить новое значение для выбора:
void DoneBtn_Clicked(object sender, EventArgs e){}
Снимок экрана пользовательского средства выбора:
![screenshot](https://i.stack.imgur.com/4YsgZ.png)
Мой код:
Class PickerRendererIos.cs :
[assembly: ExportRenderer(typeof(MyPickerRenderer), typeof(PickerRendererIos))]
namespace DigitalNatives.iOS
{
public class PickerRendererIos : PickerRenderer, IUIPickerViewDelegate
{
IElementController ElementController => Element as IElementController;
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
UIPickerView pickerView = (UIPickerView)Control.InputView;
pickerView.WeakDelegate = this;
pickerView.BackgroundColor = UIColor.White; //set the background color of pickerview
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
Control.Layer.BorderWidth = 1;
Control.BorderStyle = UITextBorderStyle.Line;
Control.TextColor = UIColor.Blue;
}
[Export("pickerView:viewForRow:forComponent:reusingView:")]
public UIView GetView(UIPickerView pickerView, nint row, nint component, UIView view)
{
UILabel label = new UILabel
{
TextColor = UIColor.Blue,
Text = Element.Items[(int)row].ToString(),
TextAlignment = UITextAlignment.Center,
};
var picker = this.Element;
return label;
}
}
}