反序列化了一個對象,this.element,然后把這個對象綁定到NumericUpDown的Value屬性上,具體過程如下:
第一步,反序列化一個對象到this.element;
1 private void btnOpen_Click(object sender, EventArgs e)
2 {
3 OpenFileDialog ofd = new OpenFileDialog();
4 ofd.Filter = "文本文件(*.txt)|*.txt|xml文件(*.xml)|*.xml|所有文件(*.*)|*.*";
5 if (ofd.ShowDialog() == DialogResult.OK)
6 {
7 this.element = XmlHelper.DeserializeFromFile(ofd.FileName);
8 }
9 this.BindData();
10 }
第二步,綁定屬性
1 private void BindData()
2 {
3
4 this.numericUpDownAl.DataBindings.Clear();
5 this.numericUpDownAl.DataBindings.Add("Value", this.element, "Al", true, DataSourceUpdateMode.OnPropertyChanged);
6
7 this.numericUpDownC.DataBindings.Clear();
8 this.numericUpDownC.DataBindings.Add("Value", element, "C", true, DataSourceUpdateMode.OnPropertyChanged);
9 }
第三步,為numbericUpDown增加一個ValueChanged事件,該事件使用element執(zhí)行業(yè)務(wù)計算。
1 this.numericUpDownAl.ValueChanged += new System.EventHandler(this.OnCalculate);
2
3 private void OnCalculate(object sender, EventArgs e)
4 {
5 YuHACalculator yuC = new YuHACalculator(this.element);
6 this.RunCalculate();
7 }
?
現(xiàn)在在窗體上更改numericUpDown數(shù)據(jù)時,會發(fā)現(xiàn)numericUpDown的值已經(jīng)改變,但是執(zhí)行OnCalculate()時this.element.Al什么的,卻沒有改變,直到再次更改numericUpDown時this.element.Al值變成上次觸發(fā)的那個值。也就是說,控件的值更新了,但綁定的實(shí)體對象的值總是會延遲更新。我在想是不是這樣的,當(dāng)更改numericUpDown的控件值時,先出發(fā)ValueChanged事件,然后再觸發(fā)綁定的數(shù)據(jù)更新,要不然怎么老是會延遲更新呢?
望高人講解,并能做到一致的更新。
NumericUpDown 控件數(shù)據(jù)綁定問題
慕田峪4524236
2018-12-07 03:18:21