2014-03-27 45 views
0

UPDATE:結合檢查PROPERT弄亂了用戶界面,結合文字是好的

我想我已經找到了問題。

影響綁定源我所有形式的活動到底有沒有這樣的:

BndSource.ResetBindings(false); 

如果我在的CheckedChanged事件處理程序註釋此行,這個問題將停止。但爲什麼?

我有一個非常奇怪的錯誤。

我有一個類屬性:

public SqlByte AutomaticFlag { get; set; } 

我想使用複選框以方便顯示此所以在初始inding我這樣做:

 dtaAutomaticFlag.DataBindings.Add("Checked", BndSource, "AutomaticFlag", true); 
     dtaAutomaticFlag.DataBindings[0].Format += (s, e) => 
     { 
      if ((SqlByte)e.Value == 1) 
      { 
       e.Value = true; 
      } 
      else 
      { 
       e.Value = false; 
      } 
     }; 

問題是迭代過程中通過所有綁定源的記錄我的用戶更新了一半,這意味着它不完整。見圖片:

enter image description here

非常奇怪的是,當我改變從以上檢查綁定屬性的文字是這樣的:

dtaAutomaticFlag.DataBindings.Add("Text", BndSource, "AutomaticFlag", true); 

的UI是好的!

圖片:

enter image description here

+0

更新了前三行中的問題。 – e4rthdog

回答

0

我不知道這是否適用於這種特殊的情況。但不是像以前那樣添加綁定:

dtaAutomaticFlag.DataBindings.Add("Text", BndSource, "AutomaticFlag", true); 

是否創建「新」綁定實例幫助?

dtaAutomaticFlag.DataBindings.Add(new Binding("Text", BndSource, "AutomaticFlag", true)); 
+0

不,它沒有幫助,它仍然完全一樣....非常非常奇怪 – e4rthdog

+0

看看這篇文章。這似乎與你的問題有關。 http://stackoverflow.com/questions/10651702/is-there-a-way-to-force-a-datagridview-to-fire-its-cellformatting-event-for-all –

+0

我想我已經找到了什麼導致問題。我會更新這個問題 – e4rthdog