public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup layoutRoot = (ViewGroup)inflater.Inflate(Resource.Layout.fragment_dataform_features, null); CheckBox readOnly = (CheckBox)layoutRoot.FindViewById(Resource.Id.readOnly); readOnly.SetOnCheckedChangeListener(this); dataForm = Android.Runtime.Extensions.JavaCast <RadDataForm>(layoutRoot.FindViewById(Resource.Id.dataForm)); dataForm.LayoutManager = new DataFormLinearLayoutManager(this.Activity); person = new Person(); person.AddPropertyChangedListener(this); dataForm.Entity = new XamarinEntity(person); DataFormSpinnerEditor editor = Android.Runtime.Extensions.JavaCast <DataFormSpinnerEditor> (dataForm.GetExistingEditorForProperty("EmployeeType")); editor.Adapter = new Com.Telerik.Widget.Dataform.Visualization.Editors.Adapters.EditorSpinnerAdapter(this.Activity, new Java.Lang.Object[] { "PROGRAMMER", "MANAGER", "SUPPORT", "MARKETING" }); RangeValidator validator = (RangeValidator)dataForm.GetExistingEditorForProperty("Age").Property().Validator; validator.Max = 30; validator.Min = 18; Spinner commitModes = (Spinner)layoutRoot.FindViewById(Resource.Id.commitModeSpinner); commitModes.Adapter = new ArrayAdapter(this.Activity, Android.Resource.Layout.SimpleSpinnerItem, CommitMode.Values()); commitModes.OnItemSelectedListener = this; personText = (TextView)layoutRoot.FindViewById(Resource.Id.personText); commitButton = (Button)layoutRoot.FindViewById(Resource.Id.manualCommit); commitButton.SetOnClickListener(this); return(layoutRoot); }
protected override EntityPropertyEditor GetCustomEditorForProperty(RadDataForm form, Com.Telerik.Widget.Dataform.Engine.IEntityProperty nativeProperty, Telerik.XamarinForms.Input.DataForm.IEntityProperty property) { var name = property.PropertyName; switch (name) { case nameof(Reservation.ReservationHolder): nativeProperty.ImageResource = Resource.Drawable.DataForm_Guest_Name; var editor = new DataFormTextEditor(form, Resource.Layout.Editor_Main_Layout_1, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer_header, Resource.Layout.data_form_text_editor, Resource.Id.data_form_text_editor, form.EditorsValidationLayout, nativeProperty); return(editor); case nameof(Reservation.HolderPhoneNumber): nativeProperty.ImageResource = Resource.Drawable.DataForm_Phone_Number; var textEditor = new DataFormTextEditor(form, Resource.Layout.Editor_Main_Layout_1, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer_header, Resource.Layout.data_form_text_editor, Resource.Id.data_form_text_editor, form.EditorsValidationLayout, nativeProperty); textEditor.HeaderView.Visibility = Android.Views.ViewStates.Invisible; return(textEditor); case nameof(Reservation.GuestNumber): nativeProperty.ImageResource = Resource.Drawable.DataForm_Guest_Number; var numberEditor = new DataFormNumberPickerEditor(form, Resource.Layout.Editor_Main_Layout_1, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer, Resource.Layout.data_form_number_picker, Resource.Id.data_form_number_picker_editor, form.EditorsValidationLayout, nativeProperty); var label = ((numberEditor.EditorView as RadNumberPicker).LabelView() as TextView); numberEditor.EditorView.RootView.LayoutParameters.Height = (int)this.Context.ToPixels(44); numberEditor.EditorView.LayoutParameters.Height = (int)this.Context.ToPixels(44); if (DarkThemeHelper.IsDarkThemeApplied(this.Context)) { label.SetTextColor(Android.Graphics.Color.White); } else { label.SetTextColor(Android.Graphics.Color.Black); } return(numberEditor); case nameof(Reservation.ReservationDate): nativeProperty.ImageResource = Resource.Drawable.DataForm_Date; var dateEditor = new DataFormDateEditor(form, Resource.Layout.Editor_Main_Layout_2, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer, Resource.Layout.data_form_date_editor, Resource.Id.data_form_date_editor, form.EditorsValidationLayout, nativeProperty); return(dateEditor); case nameof(Reservation.ReservationTime): var timeEditor = new DataFormTimeEditor(form, Resource.Layout.Editor_Main_Layout_2, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer, Resource.Layout.data_form_time_editor, Resource.Id.data_form_date_editor, form.EditorsValidationLayout, nativeProperty); var editorView = timeEditor.EditorView as EditText; (editorView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = (int)this.Context.ToPixels(12); (timeEditor.HeaderView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = (int)this.Context.ToPixels(12); return(timeEditor); case nameof(Reservation.OrderOrigin): var orderEditor = new DataFormSpinnerEditor(form, Resource.Layout.Editor_Main_Layout_2, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer_header, Resource.Layout.data_form_spinner_editor, Resource.Id.data_form_spinner_editor, form.EditorsValidationLayout, nativeProperty, null); var leftMargin = (int)this.Context.ToPixels(32); (orderEditor.EditorView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = leftMargin; (orderEditor.HeaderView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = leftMargin; return(orderEditor); case nameof(Reservation.TableSection): nativeProperty.ImageResource = Resource.Drawable.DataForm_Table_Number; var sectionEditor = new DataFormSpinnerEditor(form, Resource.Layout.Editor_Main_Layout_2, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer_header, Resource.Layout.data_form_spinner_editor, Resource.Id.data_form_spinner_editor, form.EditorsValidationLayout, nativeProperty, null); var sectionEditorView = sectionEditor.EditorView as Spinner; (sectionEditorView.LayoutParameters as FrameLayout.LayoutParams).RightMargin = (int)this.Context.ToPixels(12); return(sectionEditor); case nameof(Reservation.TableNumber): var tableNumberEditor = new DataFormSpinnerEditor(form, Resource.Layout.Editor_Main_Layout_2, form.EditorsHeaderLayout, Resource.Id.data_form_text_viewer_header, Resource.Layout.data_form_spinner_editor, Resource.Id.data_form_spinner_editor, form.EditorsValidationLayout, nativeProperty, null); (tableNumberEditor.EditorView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = (int)this.Context.ToPixels(12); (tableNumberEditor.HeaderView.LayoutParameters as FrameLayout.LayoutParams).LeftMargin = (int)this.Context.ToPixels(12); return(tableNumberEditor); default: return(base.GetCustomEditorForProperty(form, nativeProperty, property)); } }