次のように、CarpetColor というフォームにプロパティを作成します。
enum Color { Red, Blue, Green }
public Color CarpetColor
{
get { return rbGreen.Checked ? Green : (rbRed.Checked ? Red : Blue); }
set
{
if (value == Green)
rbGreen.Checked = true;
else
if (value == Red)
rbRed.Checked = true;
else
rbBlue.Checked = true;
}
}
次に、フォームの CarpetColor プロパティをデータ ソースの CarpetColor にバインドするだけです。
フォームにINotifyPropertyChanged インターフェイスを実装させ、
ラジオ ボタン イベントを使用してPropertyChangedイベントを発生させます。
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
rbGreen.CheckedChanged += (s, args) => OnPropertyChanged("CarpetColor");
rbRed.CheckedChanged += (s, args) => OnPropertyChanged("CarpetColor");
rbBlue.CheckedChanged += (s, args) => OnPropertyChanged("CarpetColor");