1
我做數據綁定以下列方式的WinForms數據綁定工作的一種方式只
private List<MyEditor> Editors { get; set; }
private Dictionary<int,object> dictionary
private void SetEditors()
{
Editors.Clear();
foreach (var element in dictionary)
{
var editor = MyFactory.GetEditor();
editor.DataBindings.DefaultDataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
editor.DataBindings.Add("Value", element, "Value");
//some code
Editors.Add(editor);
}
//some more code
}
然後在GUI我做一些改變的Editors[0]
Value
,之後,在另一段代碼我嘗試從dictionary
元獲得價值並發現它並沒有改變,即使我使用Editors[0].DataBindings["Value"].WriteValue()
來確保數據被寫入dictionary
。
在調試器中,我可以看到下面的圖片:
Editors[0].DataBindings["Value"] {System.Windows.Forms.Binding} System.Windows.Forms.Binding
....
DataSource {[0, oldValue]} object {System.Collections.Generic.KeyValuePair<int,object>}
....
而
Editors[0].Value "newValue" object {string}
什麼可能呢?將感激任何想法。