ComboBoxとDataGridViewComboBoxColumnを同期させる(その4)

今日は忙しいのでこれ以上書けないかもしれないので、メモとして書いておく。

GenderItemComboBoxCellは、以下のように書き換える。

public class GenderItemComboBoxCell : DataGridViewComboBoxCell 
{
    public override object ParseFormattedValue(
        object formattedValue,
        DataGridViewCellStyle cellStyle,
        TypeConverter formattedValueTypeConverter,
        TypeConverter valueTypeConverter)
    {
        if (String.IsNullOrEmpty(this.ValueMember))
        {
            return this.DataSource;
        }
        else
        {
            return this.DataGridView.BindingContext[this.DataSource].Current;
        }
    }
    protected override object GetFormattedValue(
        object value,
        int rowIndex,
        ref DataGridViewCellStyle cellStyle,
        TypeConverter valueTypeConverter,
        TypeConverter formattedValueTypeConverter,
        DataGridViewDataErrorContexts context)
    {
        object curr = this.DataGridView.BindingContext[value].Current;
        if (String.IsNullOrEmpty(this.DisplayMember))
        {
            return curr.ToString();
        }
        else
        {
            return base.GetFormattedValue(curr, rowIndex, ref cellStyle, valueTypeConverter, formattedValueTypeConverter, context);
        }
    }
}