2012-02-27 30 views
0

Winforms中的DataBinding存在問題,即使單擊窗體上的「取消」,對象也會更新。WinForms中的數據綁定:即使點擊「取消」也會更新

我已經將確定按鈕的屬性「DialogResult」設置爲「確定」,將取消按鈕設置爲「取消」,另外,我已將窗體的屬性「AccesptButton」和「CancelButton」設置爲bnOk和bnCancel。

這裏是我的代碼:

型號:

private string code; 
public string Code 
{ 
    get { return code; } 
    set { SetPropertyValue<string>("Code", ref code, value); } 
} 

private string libelle; 
public string Libelle 
{ 
    get { return libelle; } 
    set { SetPropertyValue<string>("Libelle", ref libelle, value); } 
} 

UI:

public FamilleTiers CurrentFamilleTiers { get; set; } 
private void FamilleTiersForm_Load(object sender, EventArgs e) 
{ 
    txCode.DataBindings.Add("Text", CurrentFamilleTiers, "Code"); 
    txLibelle.DataBindings.Add("Text", CurrentFamilleTiers, "Libelle"); 
} 

編輯功能:

public static void EditFamilleTiers(FamilleTiers selectedFamilleTiers) 
{ 
    using (FamilleTiersForm form = new FamilleTiersForm() { CurrentFamilleTiers = selectedFamilleTiers, Text = selectedFamilleTiers.Libelle }) 
    { 
     if (form.ShowDialog() == DialogResult.OK) 
     { 
      form.CurrentFamilleTiers.Save(); 
     } 
    } 
} 

感謝您的時間

回答

2

當您單擊取消在窗體數據綁定不會回覆你需要保持的值的備份副本,如果他們改變與原來的值替換新的值。 .Net不知道你想做什麼。

+0

謝謝,這很有幫助。 以下是我所做的:將DataBinding的DataSourceUpdateMode設置爲從不,如果用戶單擊確定,我更新對象屬性。 – SidAhmed 2012-02-27 14:30:26

+1

這是一個解決方案,我很高興它爲你工作,但是有一點使用數據綁定呢? – 2012-02-27 14:36:54

+1

這裏的優點是,在獲取所選對象後,我不必強制設置控件屬性(例如:「Text」或「EditValue」)。還是有其他解決方案? – SidAhmed 2012-02-27 15:27:50

相關問題