1. 程式人生 > 其它 >C# 在WinForm 中簡單實現雙向繫結 VM

C# 在WinForm 中簡單實現雙向繫結 VM

/// <summary>
        /// 將繫結資料來源和控制元件繫結
        /// </summary>
        /// <param name="ctl">控制元件</param>
        /// <param name="propertyName">屬性名稱</param>
        /// <param name="BindingSource">資料來源</param>
        /// <param name="fieldName">繫結欄位</param>
        public static void SetDataBinding(this System.Windows.Forms.Control ctl, string propertyName, object BindingSource, string fieldName)
        {
            if (ctl.DataBindings[propertyName] != null) { ctl.DataBindings.Remove(ctl.DataBindings[propertyName]); }
            ctl.DataBindings.Add(propertyName, BindingSource, fieldName, true, DataSourceUpdateMode.OnPropertyChanged);
        }
        /// <summary>
        /// 移除繫結屬性
        /// </summary>
        /// <param name="ctl"></param>
        /// <param name="propertyName"></param>
        public static void RemoveDataBinding(this System.Windows.Forms.Control ctl, string propertyName)
        {
            if (ctl.DataBindings[propertyName] != null) { ctl.DataBindings.Remove(ctl.DataBindings[propertyName]); }
        }

呼叫

ComboBox.SetDataBinding("Text", Models, "欄位名稱");

當修改了model 的時候再重新執行

ComboBox.SetDataBinding("Text", Models, "欄位名稱");