public void BindModel(SurveyEntryViewModel vm, SurveyQuestion model) { Log.Information("Cell manual bind"); this.ContentView.ClearsContextBeforeDrawing = true; this.AutoresizingMask = UIViewAutoresizing.FlexibleWidth; AnswerSlider.SetThumbImage(UIImage.FromFile("SliderButton.png"), UIControlState.Normal); QuestionLabel.Text = model.Question; MinLabel.Text = model.MinText; MaxLabel.Text = model.MaxText; AnswerSlider.MinValue = (float)model.MinValue; AnswerSlider.MaxValue = (float)model.MaxValue; AnswerSlider.Value = model.Answered ? (float)model.AnswerValue : (float)model.DefaultValue; ProgressView.Progress = AnswerSlider.Value / AnswerSlider.MaxValue; // Render the change continuously and not just when released //AnswerSlider.Continuous = true; //ProgressView.ProgressTintColor = AnswerSlider.MinimumTrackTintColor; //ProgressView.Hidden = true; AnswerSlider.ValueChanged += (sender, e) => { Log.Information($"Setting value for {model.QuestionVariable} to {AnswerSlider.Value}"); model.Answered = true; model.AnswerValue = AnswerSlider.Value; ProgressView.Progress = (AnswerSlider.Value / AnswerSlider.MaxValue); }; this.SetNeedsDisplay(); }
void ReleaseDesignerOutlets() { if (AnswerSlider != null) { AnswerSlider.Dispose(); AnswerSlider = null; } if (MaxLabel != null) { MaxLabel.Dispose(); MaxLabel = null; } if (MinLabel != null) { MinLabel.Dispose(); MinLabel = null; } if (ProgressView != null) { ProgressView.Dispose(); ProgressView = null; } if (QuestionLabel != null) { QuestionLabel.Dispose(); QuestionLabel = null; } if (SliderProgressView != null) { SliderProgressView.Dispose(); SliderProgressView = null; } }