使用方法

バインディング時に文字列ではなくて、プロパティ情報からプロパティ名を取得することで、変数名の変更に自動的に対応できる。

           this.rdbPlan.DataBindings.Add(new Binding("Checked", dto, PropertyUtils.GetPropertyName(dto, o => o.IsPLAN), false, DataSourceUpdateMode.OnPropertyChanged));

プロパティ情報の取得用のクラスです。
 

    public static class PropertyUtils
    {
        /// <summary>
        /// プロパティ名の取得を行います。
        /// </summary>
        /// <typeparam name="TSource">対象のオブジェクト</typeparam>
        /// <typeparam name="TProp">ラムダ式のプロパティ</typeparam>
        /// <param name="source">対象のオブジェクト</param>
        /// <param name="expression">ラムダ式のプロパティ</param>
        /// <returns>プロパティ名</returns>
        public static string GetPropertyName<TSource,TProp>(TSource source,Expression<Func<TSource, TProp>> expression)
        {

            var body = expression.Body as MemberExpression;
            if (body == null) throw new ArgumentException("'expression' should be a member expression");

            return body.Member.Name;

        }

        /// <summary>
        /// プロパティ情報名の取得を行います。
        /// </summary>
        /// <typeparam name="TSource">対象のオブジェクト</typeparam>
        /// <typeparam name="TProp">ラムダ式のプロパティ</typeparam>
        /// <param name="source">対象のオブジェクト</param>
        /// <param name="expression">ラムダ式のプロパティ</param>
        /// <returns>プロパティ名</returns>
        public static PropertyInfo GetPropertyInfo<TSource, TProp>(TSource source, Expression<Func<TSource, TProp>> expression)
        {
            return source.GetType().GetProperty(GetPropertyName(source, expression));
        }

        public static PropertyInfo GetPropertyInfo(object property, string propertyName)
        {
            var arrayProperties = property.GetType().GetProperties();
            foreach (PropertyInfo propertyInfo in arrayProperties)
            {
                if (propertyInfo.Name == propertyName)
                {
                    return propertyInfo;
                }
            }

            return null;
        } 
  }