2011-07-15 12 views
4

numericUpDownには2つのバインディングconfigClass.RaMsizeが必要です。どうやってメンバクラスにnumericUpDownをバインドするのですか?

BindField(this.upDownRamSize, "Value", configClass, "RaMsize");//all right 

this.upDownRamSize.Value = 1213;// configClass.RaMsize - not change - it's bad! 

方法:

public static void BindField(Control control, string propertyName, 
       object dataSource, string dataMember) 
     { 
      Binding bd; 

      for (int index = control.DataBindings.Count - 1; (index == 0); index--) 
      { 
       bd = control.DataBindings[index]; 
       if (bd.PropertyName == propertyName) 
        control.DataBindings.Remove(bd); 
      } 
      control.DataBindings.Add(propertyName, dataSource, dataMember); 
     } 

答えて

1

私はConfigClassがどのように見えることを想定:

control.DataBindings.Add(propertyName, dataSource, dataMember, false, DataSourceUpdateMode.OnPropertyChanged); 

テスト:0だから、 control.DataBindings.Add(propertyName, dataSource, dataMember); への変更

public class ConfigClass 
{ 
    public decimal RaMsize { get; set; } 
} 
BindField(this.upDownRamSize, "Value", configClass, "RaMsize"); 

this.upDownRamSize.Value = 1213;// configClass.RaMsize will also have 1213