- 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(); } }
Categorie
Supporta questo Blog
Translate
-
Articoli recenti
- Come forzare l’aggiornamento di Windows 10 e/o effettuare un ‘Riavvia il sistema’, senza utilizzare la barra degli strumenti bensì solo la tastiera 18 giugno 2022
- Scadenza acconto IMU il 16 giugno 2022: come calcolare l’importo dovuto e pagarlo 10 giugno 2022
- Open House Torino: un’occasione annuale per scoprire bellezze private e generalmente inaccessibili 9 giugno 2022
- Alcuni suggerimenti per accrescere il proprio orecchio musicale… e come scaricare gratuitamente l’ebook/pdf del libretto completo di alcune opere liriche 1 giugno 2022
- Convertire delle immagini jpg in un file pdf; comprimere un file pdf perché risulti di dimensioni minori 29 Maggio 2022
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"?
- Da un solo smartphone come riuscire a gestire più SPID, anche ciascuno associato a persone differenti
- Come modificare o cancellare un beneficiario/contatto precedentemente salvato in un sito della banca (e.g. BNL, IngDirect, Intesa SanPaolo)
- Come recuperare il PIN/PUK della propria Carta d'Identità Elettronica (CIE) e poi leggerla con un lettore NFC
- Facebook problem: it is still impossible to move to another album a photo if uploaded in one post along with other images
- Come connettere uno smartphone o un tablet con un cavo Ethernet
- Come collegare un telefono a un modem con SIM per ricevere/effettuare telefonate tramite un apparato telefonico multifrequenza
- Frattura biossea (tibia e perone) scomposta della gamba: istruzioni per l'uso
- How to share photos, videos & album with Amazon Photo included in an Amazon Prime subscription
Foto su Flickr
Annunci