using System; using ElmSharp; namespace Xamarin.Forms.Platform.Tizen { public class SwitchRenderer : ViewRenderer { public SwitchRenderer() { RegisterPropertyHandler(Switch.IsToggledProperty, HandleToggled); } protected override void OnElementChanged(ElementChangedEventArgs e) { if (Control == null) { var _switch = new Check(Forms.Context.MainWindow) { PropagateEvents = false, }; SetNativeControl(_switch); } if (e.OldElement != null) { Control.StateChanged -= CheckChangedHandler; } if (e.NewElement != null) { Control.Style = "toggle"; Control.StateChanged += CheckChangedHandler; } base.OnElementChanged(e); } void CheckChangedHandler(object sender, EventArgs e) { Element.SetValue(Switch.IsToggledProperty, Control.IsChecked); } void HandleToggled() { Control.IsChecked = Element.IsToggled; } } }