2009-09-12 25 views
0

我有一個綁定導航器,我正在使用它來添加/編輯項目。 我遇到的問題是當我點擊保存按鈕(我添加到工具欄的按鈕)我的綁定似乎沒有生效。此代碼加載並綁定我的數據。BindingNavigator問題?

 private void CompanyForm_Load(object sender, EventArgs e) 
     { 
      // Loads all of the companies 
      companies = new BindingList<Company>(PersistenceManager.Instance.RetrieveAll<Company>())); 
      companies.AllowNew = true; 
      companies.AllowEdit = true; 

      bindingSource.DataSource = companies; 

      // Add our bindings 
      companyIdTextBox.DataBindings.Add("Text", companies, "Id"); 
      companyNameTextBox.DataBindings.Add("Text", companies, "Name"); 
     } 

當保存按鈕運行這些代碼被點擊:

 private void toolStripSaveButton_Click(object sender, EventArgs e) 
     { 
      // If we have no binding source, then we cannot save 
      if (null == bindingSource.Current) 
      { 
       return; 
      } 

      Company company = bindingSource.Current as Company; 

      // Save our company 
      PersistenceManager.Instance.Save<Company>(company); 
     } 

問題是,當我點擊保存按鈕,當前的項目從來沒有從輸入的數據進行更新。

我只是想念一些愚蠢的東西?

+0

您是否嘗試將斷點檢查爲實際調用此方法? – 2009-09-12 16:10:40

+0

是的,該方法正在調用。這是當我檢查數據,並看到值不更新。 – Kyle 2009-09-12 16:16:54

回答

2

當加入您的綁定,嘗試做這樣的...

companyIdTextBox.DataBindings.Add("Text", companies, "Id", true, DataSourceUpdateMode.OnPropertyChanged); 
companyNameTextBox.DataBindings.Add("Text", companies, "Name", true, DataSourceUpdateMode.OnPropertyChanged); 

默認情況下,DataSourceUpdateMode設置爲OnValidation;或許OnValidation事件不會觸發你的情況。如果這是問題,請將DataSourceUpdateMode設置爲OnPropertyChanged應該做的竅門。

0

我假設你的持久性存儲是一個數據庫?在VS解決方案資源管理器中,查看數據庫文件的屬性,並檢查「複製到輸出目錄」未設置爲「始終複製」。這會在每次構建項目時在工作目錄中覆蓋數據庫...

相關問題