- How to handle binding in CheckBox?
There are several ways to do that binding but the best way I found is the following where the Click event is handled setting a specific ClickMode:<CheckBox x:Name="checkBoxMergeAudio" IsChecked="{Binding IsMergeAudio, Mode=TwoWay}" Margin="0,0,0,0" Click="checkBoxMergeAudio_Changed" ClickMode="Release"> <TextBlock TextWrapping="Wrap" Text="{Binding LocalizedResources.MergeAudio, Source={StaticResource LocalizedStrings}}" /> </CheckBox>and in the code behind:
private void checkBoxMergeAudio_Changed(object sender, RoutedEventArgs e) { //save the changed state of the checkbox Utility.SetAppSettings(Constants.MergeAudio, (((SettingsPivotDataSource)DataContext).IsMergeAudio).ToString()); }Note that using the TextBox style of the CheckBox, I succeded to handle also the possible wrapping of the text field of that control.
- How to handle binding in RadioButton?
Also in this case there are several ways! … one can be the following:<StackPanel Margin="0,0,0,0" Grid.Row="0" Background="{StaticResource BrushTransparentGray}"> <RadioButton Content="{Binding LocalizedResources.AlwaysLogin, Source={StaticResource LocalizedStrings}}" Name="alwaysLoginButton" IsChecked="{Binding LoginType, Converter={StaticResource EqualityConverter}, ConverterParameter=0, Mode=OneWay}" GroupName="AutoLoginGroup" Click="alwaysLoginButton_Checked" ClickMode="Release" /> <RadioButton Content="{Binding LocalizedResources.DailyLogin, Source={StaticResource LocalizedStrings}}" Name="daylyLoginButton" IsChecked="{Binding LoginType, Converter={StaticResource EqualityConverter}, ConverterParameter=1, Mode=OneWay}" GroupName="AutoLoginGroup" Click="daylyLoginButton_Checked" ClickMode="Release" /> <RadioButton Content="{Binding LocalizedResources.TimeStampLogin, Source={StaticResource LocalizedStrings}}" Name="loginEveryButton" IsChecked="{Binding LoginType, Converter={StaticResource EqualityConverter}, ConverterParameter=2, Mode=OneWay}" GroupName="AutoLoginGroup" Click="loginEveryButton_Checked" ClickMode="Release" /> </StackPanel>and in the code behind:
private void alwaysLoginButton_Checked(object sender, RoutedEventArgs e) { LoginTypeWrapper actualLoginTypeWrapper = new LoginTypeWrapper(LoginType.ALWAYS); if (!DataSourceManager.SettingsPivotDataSource.LoginType.Equals(actualLoginTypeWrapper)) { DataSourceManager.SettingsPivotDataSource.LoginType = actualLoginTypeWrapper; //salvo la nuova impostazione scelta dall'utente Utility.SetAppSettings(Constants.LoginType, LoginType.ALWAYS.ToString()); } } private void daylyLoginButton_Checked(object sender, RoutedEventArgs e) { LoginTypeWrapper actualLoginTypeWrapper = new LoginTypeWrapper(LoginType.DAILY); if (!DataSourceManager.SettingsPivotDataSource.LoginType.Equals(actualLoginTypeWrapper)) { DataSourceManager.SettingsPivotDataSource.LoginType = actualLoginTypeWrapper; //salvo la nuova impostazione scelta dall'utente Utility.SetAppSettings(Constants.LoginType, LoginType.DAILY.ToString()); } } private void loginEveryButton_Checked(object sender, RoutedEventArgs e) { LoginTypeWrapper actualLoginTypeWrapper = new LoginTypeWrapper(LoginType.EVERY); if (!DataSourceManager.SettingsPivotDataSource.LoginType.Equals(actualLoginTypeWrapper)) { DataSourceManager.SettingsPivotDataSource.LoginType = actualLoginTypeWrapper; //salvo la nuova impostazione scelta dall'utente Utility.SetAppSettings(Constants.LoginType, LoginType.EVERY.ToString()); } }where the converter is the following:
public class EqualityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (parameter != null && value is LoginTypeWrapper) { if (((LoginTypeWrapper)value).Code == System.Convert.ToInt32(parameter)) { return true; } } return false; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
-
Unisciti a 166 altri iscritti
Categorie
Supporta questo Blog
Translate
-
Articoli recenti
- Assistenza tecnica telefonica a pagamento di TIM: diversamente da quanto indicato, viene fatta pagare anche quando non viene risolta una problematica che comunque dipende dai loro sistemi e non dal cliente 24 gennaio 2026
- NO COMMENT: è da fine luglio che cerco di aderire all’offerta Wifi Casa di TIM… senza successo! 12 gennaio 2026
- Ricordi lontani: “Le avventure di Robinson Crusoé” serie televisiva trasmessa dalla RAI a metà anni ’60… ed altro ancora 12 gennaio 2026
- Protetto: Plug-in per Ableton e DAW in genere 27 dicembre 2025
- Come scaricare un video in streaming con il programma opensource ffmpeg 21 dicembre 2025
Archivi
Classifica Post
- Come sapere se un rubinetto (e.g. per lavatrice o del gas) è aperto o chiuso?
- Volkswagen: cosa fare se l'impostazione della sfera privata torna "Massima" e quindi i servizi in remoto vengono disattivati
- Come modificare o cancellare un beneficiario/contatto precedentemente salvato in un sito della banca (e.g. BNL, IngDirect, Intesa SanPaolo)
- Da un solo smartphone come riuscire a gestire più SPID, anche ciascuno associato a persone differenti
- Come riparare i telecomandi di poltrone e letti reclinabili
- Come inserire simboli musicali in un documento Word
- How to make your Android smartphone look like a Windows 10 Mobile device - Part 2: Square Home launcher tips & tricks
- PosteID: come modificare i dati del documento di riconoscimento quando scaduto, in modo da poter continuare a utilizzare quello SPID
- Frattura biossea (tibia e perone) scomposta della gamba: istruzioni per l'uso
- Manuale utente della Volkswagen T-CROSS
Foto su Flickr
Annunci




