So che questa è una domanda precedente, ma è stata la prima a comparire nei risultati di ricerca. Ho trovato un modo generico per legarsi pulsanti di opzione per un enum, o anche una stringa o un numero, ecc
private void AddRadioCheckedBinding<T>(RadioButton radio, object dataSource, string dataMember, T trueValue)
{
var binding = new Binding(nameof(RadioButton.Checked), dataSource, dataMember, true, DataSourceUpdateMode.OnPropertyChanged);
binding.Parse += (s, a) => { if ((bool)a.Value) a.Value = trueValue; };
binding.Format += (s, a) => a.Value = ((T)a.Value).Equals(trueValue);
radio.DataBindings.Add(binding);
}
E allora o sul costruttore del modulo o di carico di maschera, lo chiamano su ciascuno dei vostri Controlli RadioButton
. dataSource
è l'oggetto che contiene la proprietà enum. Mi sono assicurato che l'interfaccia INotifyPropertyChanged
abbia implementato l'interfaccia INotifyPropertyChanged
nell'enumerazione delle proprietà enum.
AddRadioCheckedBinding(Choice1RadioButton, dataSource, "MyChoice", MyChoices.Choice1);
AddRadioCheckedBinding(Choice2RadioButton, dataSource, "MyChoice", MyChoices.Choice2);