From a8b00c1545468d16ef7e259429099653498ef397 Mon Sep 17 00:00:00 2001 From: Jan Karger Date: Sun, 31 May 2015 00:25:28 +0200 Subject: [PATCH] fix on/off label binding issue #1867 --- MahApps.Metro/Controls/ToggleSwitch.cs | 18 ------------------ MahApps.Metro/Converters/OffOnConverter.cs | 1 + MahApps.Metro/Themes/ToggleSwitch.xaml | 22 ++++++++++++++++++++++ 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/MahApps.Metro/Controls/ToggleSwitch.cs b/MahApps.Metro/Controls/ToggleSwitch.cs index 23ed2f8f3c..73ea31271f 100644 --- a/MahApps.Metro/Controls/ToggleSwitch.cs +++ b/MahApps.Metro/Controls/ToggleSwitch.cs @@ -30,7 +30,6 @@ public class ToggleSwitch : ContentControl private const string SwitchPart = "Switch"; private ToggleButton _toggleButton; - private bool _wasContentSet; public static readonly DependencyProperty OnLabelProperty = DependencyProperty.Register("OnLabel", typeof(string), typeof(ToggleSwitch), new PropertyMetadata("On")); public static readonly DependencyProperty OffLabelProperty = DependencyProperty.Register("OffLabel", typeof(string), typeof(ToggleSwitch), new PropertyMetadata("Off")); @@ -209,32 +208,15 @@ void ToggleSwitch_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs IsChecked = !IsChecked; } - private void SetDefaultContent() - { - Binding binding = new Binding("IsChecked") { Source = this, Converter = new OffOnConverter(), ConverterParameter = this }; - SetBinding(ContentProperty, binding); - } - private void ChangeVisualState(bool useTransitions) { VisualStateManager.GoToState(this, IsEnabled ? NormalState : DisabledState, useTransitions); } - protected override void OnContentChanged(object oldContent, object newContent) - { - base.OnContentChanged(oldContent, newContent); - _wasContentSet = true; - } - public override void OnApplyTemplate() { base.OnApplyTemplate(); - if (!_wasContentSet && GetBindingExpression(ContentProperty) == null) - { - SetDefaultContent(); - } - if (_toggleButton != null) { _toggleButton.Checked -= CheckedHandler; diff --git a/MahApps.Metro/Converters/OffOnConverter.cs b/MahApps.Metro/Converters/OffOnConverter.cs index da2e12a782..fa5eb77456 100644 --- a/MahApps.Metro/Converters/OffOnConverter.cs +++ b/MahApps.Metro/Converters/OffOnConverter.cs @@ -6,6 +6,7 @@ namespace MahApps.Metro.Converters { + [Obsolete(@"This converter will be deleted in the next release.")] public class OffOnConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) diff --git a/MahApps.Metro/Themes/ToggleSwitch.xaml b/MahApps.Metro/Themes/ToggleSwitch.xaml index b508aebcce..d786f3dc23 100644 --- a/MahApps.Metro/Themes/ToggleSwitch.xaml +++ b/MahApps.Metro/Themes/ToggleSwitch.xaml @@ -115,6 +115,28 @@ + + + + + + + + + + + + + + + + + + + + + +