- 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 146 altri iscritti
Categorie
Supporta questo Blog
Translate
-
Articoli recenti
- Come inserire simboli musicali in un documento Word 24 gennaio 2023
- Come cambiare le coordinate di accredito della pensione nel sito dell’INPS 16 gennaio 2023
- Come utilizzare la Carta Sanitaria come Carta Nazionale dei Servizi (CNS) in alternativa a un accesso tramite SPID/CIE: può essere anche un agevole metodo per operare per conto di una persona anziana o comunque incapace di utilizzare servizi offerti online 12 gennaio 2023
- Cosa fare se, connettendo un PC all’hotspot Wi-Fi del proprio smartphone, su quest’ultimo si perde la connessione a Internet, benché questa venga fornita al PC 3 gennaio 2023
- Assistenza rapida: come fare se, in un nuovo PC Windows, non funziona questa indispensabile app che consente di ricevere/dare assistenza da remoto 1 gennaio 2023
Archivi
Classifica Post
- Come sapere se un rubinetto (e.g. per lavatrice o del gas) è aperto o chiuso?
- TicketOne: cosa fare se non si riesce ad acquistare un biglietto in quanto viene indicato che "Il codice fiscale inserito risulta già registrato"?
- Come recuperare il PIN/PUK della propria Carta d'Identità Elettronica (CIE) e poi leggerla con un lettore NFC
- Come collegare un telefono a un modem con SIM per ricevere/effettuare telefonate tramite un apparato telefonico multifrequenza
- Come modificare o cancellare un beneficiario/contatto precedentemente salvato in un sito della banca (e.g. BNL, IngDirect, Intesa SanPaolo)
- 18app: come fare se non si riesce più ad autorizzare un accesso con PosteID
- Da un solo smartphone come riuscire a gestire più SPID, anche ciascuno associato a persone differenti
- Cosa fare se una lampadina led a filamento non si spegne completamente anche mettendo l'interruttore ad OFF
- Come connettere uno smartphone o un tablet con un cavo Ethernet
- Facebook problem: it is still impossible to move to another album a photo if uploaded in one post along with other images
Foto su Flickr
Annunci