Wiem, że to stare pytanie, ale to było pierwsze, które pojawiły się w moich wynikach wyszukiwania. I zorientowali się ogólny sposób wiązania przyciski radiowe do wyliczenia, a nawet struny lub numer itd
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);
}
a następnie albo na konstruktora formularza lub w przypadku obciążenia formularz, zadzwoń go na każdym z RadioButton
kontroli. Obiekt dataSource
jest obiektem zawierającym właściwość wyliczenia. Upewniłem się, że interfejs dataSource
zaimplementował interfejs INotifyPropertyChanged
uruchamiający zdarzenie OnPropertyChanged
w ustawiaczu właściwości wyliczenia.
AddRadioCheckedBinding(Choice1RadioButton, dataSource, "MyChoice", MyChoices.Choice1);
AddRadioCheckedBinding(Choice2RadioButton, dataSource, "MyChoice", MyChoices.Choice2);